python - 如何在 celery 组中为子任务添加延迟?

标签 python django celery

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

我试过这个:

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

但这没有用。

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

最佳答案

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

  • 任务 – 任务类/实例或任务名称。
  • args – 要应用的位置参数。
  • kwargs – 要应用的关键字参数。
  • 选项 – 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

阅读更多 Here

关于python - 如何在 celery 组中为子任务添加延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212944/

相关文章:

python - pyqt5 我想删除 QTreeWidget 中的箭头图标

django - 使用 django 开发和部署 Vuejs 应用程序

python - 在 Web 服务器上部署 Python 脚本

python - 将查询集转换为 Django 中的列表

python - 按混合数据类型过滤 DataFrame

django - 如何优化 Django 1.8 中的迁移

python - django:更改基于 ModelForm 的表单类的 auto_id

python - 查询任务状态——Celery和redis

python - 获取线程中任意位置的当前 celery 任务 ID

python - 将列值更改为 Pandas 中的列标题