Python 哪种方式调用芹菜中的子任务更好?分组、延迟每个项目或使用回调?

Python 哪种方式调用芹菜中的子任务更好?分组、延迟每个项目或使用回调?,python,celery,yield,Python,Celery,Yield,python 3.5 芹菜4.0.2 RabbitMq 3.6.10 我也在尝试获取一些数据,但我不知道哪种方法更合适 数据的结构就像一个表,我需要为每一行推送子任务 这是我用过的 延迟每个项目: @app.task def task(): for row in table: subtask.delay(row) @app.task def subtask(item): dosomething(item) 使用组 @app.task def task():

python 3.5 芹菜4.0.2 RabbitMq 3.6.10

我也在尝试获取一些数据,但我不知道哪种方法更合适

数据的结构就像一个表,我需要为每一行推送子任务

这是我用过的

  • 延迟每个项目:

    @app.task
    def task():
        for row in table:
            subtask.delay(row)
    
    @app.task
    def subtask(item):
        dosomething(item)
    
  • 使用组

    @app.task
    def task():
        rows=[]
        for row in table:
            rows.append(row)
        group(subtask.s(row) for row in rows)()
    
    @app.task
    def subtask(item):
        dosomething(item)
    
  • 利用群与产量

    def _task():
        for row in table:
            yield subtask(row).s()
    
    @app.task
    def task():
        group(_task())()
    
    @app.task
    def subtask(item):
        dosomething(item)
    
这只是我问题的一个演示,我对这些代码做了一些测试。第三条路看起来更好

你选择哪条路

有什么建议吗