2012-12-03 9 views
6

Jestem od zestawu zadań selera stosując grupę seler, jak opisano w official documentationTrwa pobieranie GroupResult z taskset_id w Seler?

ja również przechowywanie grupę (taskset) identyfikator w dB, w celu POLL seler stanu taskset.

job = group([ 
     single_test.s(1, 1), 
     single_test.s(1, 2), 
     single_test.s(1, 3), 
    ]) 

result = job.apply_async() 

test_set = MyTestSet() 
test_set.taskset_id = result.id 

# store test_set into DB 

Czy istnieje sposób, aby uzyskać obiekt GroupResult (to mój result) począwszy od taskset id? Coś jak to, co się robi w this question, ale praca z grupami selera.

Próbowałem już robi:

r = GroupResult(taskset_id) 

ale to nie działa, jak r.results() jest zawsze pusty.

Czy należy używać GroupResult.save() i GroupResult.restore()methods?

Odpowiedz

14

Tak, musisz zapisać wynik, a następnie go przywrócić.

job = group([ 
    single_test.s(1, 1), 
    single_test.s(1, 2), 
    single_test.s(1, 3), 
]) 
result = job.apply_async() 
result.save() 

from celery.result import GroupResult 
saved_result = GroupResult.restore(result.id) 

Miałem ten sam problem i po zobaczeniu twojej podpowiedzi o zapisaniu/przywróceniu ostatecznie zorientowałem się.

+0

Tak, w końcu również używam tego kodu. ;) – Andrea