在组的子任务之间添加延迟
Add a delay between subtasks of a group
我正在创建一个 Celery group 来并行执行一堆进程。以下是代码-
@periodic_task(run_every=timedelta(minutes=1))
def schedule_pivots():
today_list="A,B,C,D"
g = group(get_pivots.s(l,'OPT') for l in today_list.split(','))
g.set(countdown=100).delay()
'get_pivots' 是并行调用的任务。此任务调用一个外部 API,如果在 500 毫秒内调用,它会限制速率。有没有办法让我在每次执行任务之间引入延迟 'get_pivots' ?
刚测试过这个
@celery.task(rate_limit='10/m')
def add(x, y):
return x + y
从 python 解释器调用此任务时
>>> g = group(add.s(i, i + 1) for i in range(10))
>>> r = g()
>>> r.get()
最后一部分冻结,直到一切都完成,希望对您有所帮助
我正在创建一个 Celery group 来并行执行一堆进程。以下是代码-
@periodic_task(run_every=timedelta(minutes=1))
def schedule_pivots():
today_list="A,B,C,D"
g = group(get_pivots.s(l,'OPT') for l in today_list.split(','))
g.set(countdown=100).delay()
'get_pivots' 是并行调用的任务。此任务调用一个外部 API,如果在 500 毫秒内调用,它会限制速率。有没有办法让我在每次执行任务之间引入延迟 'get_pivots' ?
刚测试过这个
@celery.task(rate_limit='10/m')
def add(x, y):
return x + y
从 python 解释器调用此任务时
>>> g = group(add.s(i, i + 1) for i in range(10))
>>> r = g()
>>> r.get()
最后一部分冻结,直到一切都完成,希望对您有所帮助