【问题标题】:How to add a task to a group in Celery?如何在 Celery 中将任务添加到组中?
【发布时间】:2016-11-10 20:48:37
【问题描述】:

我想在我的代码中逐步构建 group 的 Celery 任务,因为我将基于循环中的逻辑创建任务。

例如:

my_group = group()
for item in items:
    if item.is_special():
        # This doesn't work...
        my_group.add(special_processing.s(item.id))
    else:
        my_group.add(regular_processing.s(item.id))

 res = my_group()

我听说组是局部的,这很好,但是如何组合局部以使它们形成一个组?

【问题讨论】:

    标签: python celery distributed-computing


    【解决方案1】:

    到目前为止,我发现的一种简单方法是创建一个任务列表,然后将其转换为一个组。

    所以:

    tasks = []
    for item in items:
        if item.is_special():
            tasks.append(special_processing.s(item.id))
        else:
            tasks.append(regular_processing.s(item.id))
    res = group(*tasks)
    

    我还没有对此进行测试,但如果这不起作用,我会更新这个答案。

    【讨论】:

    • 这是一个懒惰的群体。调用组来运行执行,即。 res()
    猜你喜欢
    • 2023-04-04
    • 2016-07-23
    • 2013-10-24
    • 2021-04-09
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多