2016-11-10 3 views
0

Я хочу поэтапно построить 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