如何为芹菜中的组中的子任务添加延迟?

时间:2013-01-08 10:30:46

标签: python django celery

我的工作流程是这样的:我有一组子任务,每个任务应该以一定的间隔执行,但不能同时执行任何任务。

我试过了:

celery.group(getting_a_page.s(user,x,page).countdown(x) for x in range(5))

但那没用。

知道怎么做吗?关于文档的内容并不多。根据文档,我可以延迟任务但不能延迟任务。

1 个答案:

答案 0 :(得分:3)

Task.subtask()具有以下参数:

  • task - 任务类/实例或任务名称。
  • args - 要应用的位置参数。
  • kwargs - 要应用的关键字参数。
  • options - Task.apply_async()的其他选项。

Task.apply_async()有选项:倒计时和eta,可用于设置延迟

因此你可以这样做:

celery.group(getting_a_page.s(args=(user, x, page), countdown=X))
# where X is any number

阅读更多Here