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)
使用group和yield
def _task():
for row in table:
yield subtask(row).s()
@app.task
def task():
group(_task())()
@app.task
def subtask(item):
dosomething(item)
这只是我的问题的演示,我已经对这些代码进行了一些测试。第三种方式看起来更好。
您选择哪种方式?
有什么建议吗?