2016-11-10 32 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

相關問題