我正在尝试用芹菜(v4.0)链接以下任务,
task = group([tasks1.s(), task2.s()) | generate_job_requests.s() | execute_job.map() | aggregate_result.s()
result = task.get()
以上部分作为和弦正常工作到generate_job_requests
。
但是问题从execute_job
开始,它从generate_job_requests
获取作业列表,我需要创建并行任务,然后是所有作业的聚合结果。
我正在尝试验证芹菜是否可以使用这种任务图?有没有可能的替代工作流来解决这种依赖的问题? 我在文档中遗漏的任何内容。
答案 0 :(得分:0)
我使用类似于中间任务创建者的地图功能,其作用类似于和弦,
Blade::directive('showIfError', function($fieldName) {
$errors = session('errors');
if ($errors->has($fieldName)) {
return "<span class='help-block'>".$errors->first($fieldName)."</span>";
}
});
因此,任务流程减少了,
@shared_task(ignore_result=False)
def dmap(it, callback, end_task):
callback = subtask(callback)
grp = group(callback.clone([arg, ]) for arg in it)
c = (grp | end_task)
return c()
为了获得最终的任务输出,我做了一些调整,
task = (group([tasks1.s(), task2.s()) | generate_job_requests.s() | dmap.s(
execute_job.s(), aggregate_result.s())).apply_async()
我提到answer