celery_tasktree(http://docs.celeryproject.org/en/latest/userguide/canvas.html)提供了更清晰的工作流程画布。但是,它仅支持树状工作流结构,而不支持类似DAG的一般工作流。 Celery工作流程确实有“和弦”方法,但使用起来似乎很麻烦。
是否还有其他基于芹菜的库类似于celery_tasktree,它适用于一般的DAG工作流程?
答案 0 :(得分:1)
以下是一些支持基于DAG的作业调度程序的库。
https://github.com/thieman/dagobah
https://github.com/apache/incubator-airflow
它们不是以芹菜为基础的。但是,您可以在celery中创建自己的基元来转发可用于构建DAG作业调度程序的结果。
@app.task(bind=True)
def forward(self, result, sig):
# convert JSON serialized signature back to Signature
sig = self.app.signature(sig)
# get the return value of the provided task signature
result2 = sig()
# next task will receive tuple of (result_A, result_B)
return (result, result2)
@app.task
def C(self, Ares_Bres)):
Ares, Bres = Ares__Bres
return Ares + Bres
workflow = (A.s() | forward.s(B.s()) | C.s())
See here进行更详细的讨论。