python - Celery - 在链组内运行子任务
问题描述
希望一切安好!
问题:我试图在链中运行一组子任务,然后在父级最高级别我有一个围绕链的组。正在执行子任务;但是,在子任务可以吐回它们的结果之前,来自最父组原语的结果就完成了。
例子
--- 我有以下 3 个任务 ---
@app.task
def task_one(seconds):
time.sleep(seconds)
return [seconds + 0.1, seconds + 0.2]
@app.task
def task_two(seconds):
return group(task_three.signature(args=(x,)) for x in seconds)()
@app.task
def task_three(seconds):
time.sleep(seconds)
return {
'sleep': seconds
}
---任务是这样调用的---
g = group(
chain(
task_one.s(x),
task_two.s()
) for x in range(1, 3)
)
promise = g.apply_async()
print(promise.get())
该函数task_two
将创建一组任务 ( task_three
) 来执行。运行时,最外层组将完成执行并在task_three
任务完成之前返回结果。
知道为什么会这样吗?
解决方案
推荐阅读
- powershell - AutoIt 复选框按钮单击
- python - 使用python检查文件中的名称是否匹配
- c++ - 编写将唯一指针推入向量的函数时出错
- node.js - Bitstamp 认证 API hmac
- kubernetes - 即使成功启用 Bolt,也无法建立与 Neo4j 使用螺栓方案的连接
- sharepoint - 如何禁用/隐藏将新文件上传到文档集后弹出的编辑表单(SP 2016)
- javascript - 如何在我在 javascript 中使用 DOM 创建的元素中使用 InnerHTML 添加内容
- c++ - 文件系统:错误无法删除:输入/输出错误
- java - MyBatis: IllegalArgumentException: Mapped Statements 集合不包含值
- python-3.x - Pandas Python groupby多列 - 根据具有特定值的第一列按第2列中的值对行进行排序