4

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

我试过这个:

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

但这没有用。

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

4

1 回答 1

3

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

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

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

因此,您可以执行以下操作:

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

在这里阅读更多

于 2013-01-08T17:05:47.910 回答