【问题标题】:Use Celery for a pipeline使用 Celery 作为管道
【发布时间】:2014-07-01 06:08:07
【问题描述】:

这是将 Celery 用于管道的最佳方式:TaskA -> TaskB -> TaskC?我对 Celery 一无所知,文档并没有过多解释在实际应用中应该如何做。

@app.task
def taskA(t_id):
    if success:
        TaskB.delay(t_id)
    else:
        ReportError.delay(t_id)

@app.task
def taskAA(t_id):
    if success:
        TaskB.delay(t_id)
    else:
        ReportError.delay(t_id)

@app.task
def taskB(t_id):
    if success:
        TaskC.delay(t_id)
    else:
        ReportError.delay(t_id)

也许我不应该将 Celery 用于此类任务...

【问题讨论】:

标签: python celery


【解决方案1】:

正如其他评论者所说,您可以使用链。有关更多信息,请参阅https://celery.readthedocs.org/en/latest/userguide/canvas.html#chains。根据您的原始问题,如下所示:

from celery import chain

ret = chain(taskA.s(), taskB.s(), taskC.s()).apply_async()

if ret.status == u'SUCCESS':
    print "result:", ret.get()

【讨论】:

    猜你喜欢
    • 2015-06-08
    • 1970-01-01
    • 2023-03-13
    • 2012-04-25
    • 2015-07-24
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多