2016-11-10 10 views
0

Ich möchte inkrementell eine group Sellerie Aufgaben in meinem Code erstellen, weil ich die Aufgaben basierend auf Logik in einer Schleife erstellen wird.Wie füge ich einer Gruppe in Sellerie eine Aufgabe hinzu?

Zum Beispiel:

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() 

Ich habe gelesen, dass Gruppen partials sind, was gut ist, aber wie kombinieren Sie partials, so dass sie eine Gruppe bilden?

Antwort

2

Eine einfache Möglichkeit, die ich bisher gefunden habe, ist es, eine Liste von Aufgaben zu erstellen und diese dann in eine Gruppe umzuwandeln.

So:

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) 

ich dies noch nicht getestet, aber ich werde diese Antwort aktualisieren, wenn dies nicht funktioniert.

+0

Hat es funktioniert ???? – HereHere

+0

Ich weiß es nicht, aber ich sehe nicht, warum es nicht funktionieren würde. – mlissner

Verwandte Themen