是否可以通过参数* max_retries *参数化调用链中的任务?

时间:2019-04-22 06:33:47

标签: celery

我需要以不同的行为在不同的链中执行相同的任务。对于链A,我想限制重新启动的次数,因此我在声明任务本身时指定此参数。

从链B调用任务时如何覆盖max_retries选项,以使任务无限期地重新启动?

@shared_task(bind=True, max_retries=1)
task(args):
   pass
B = chain(task.s(args).set(max_retries=None), task2...)

为什么我认为应该起作用?

  

You can’t define options with s(), but a chaining set call takes care of that

Task.max_retries

  

放弃之前尝试重试的最大次数。如果   重试次数超过此值MaxRetriesExceededError   将会引发异常。默认值为3。None值将为   禁用重试限制,任务将永远重试直到它   成功。

预期: 链B中的任务无限期重启

实际结果: B链中的任务重新启动1次

0 个答案:

没有答案