2016-11-10 43 views
0

我想在我的代码中增量构建Celery任务的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() 

我读过群体是谐音,这是很好的,但你怎么结合的谐音,让他们组成一个小组?

回答

2

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

所以:

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) 

我没有测试过这个呢,但如果这行不通,我会更新这个答案。

+0

它工作吗? – HereHere

+0

我不知道,但我不明白为什么它不起作用。 – mlissner

相关问题