2012-12-03 14 views
6

मैं official documentationसेलेरी में taskset_id से GroupResult को पुनर्प्राप्त करना?

में वर्णित के रूप मैं भी एक डाटाबेस में समूह (taskset) आईडी भंडारण कर रहा हूँ आदेश 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 

वहाँ एक GroupResult वस्तु प्राप्त करने के लिए एक रास्ता है (अर्थात मेरे result) taskset आईडी से शुरू? this question में क्या किया जाता है, लेकिन सेलेरी समूहों के साथ काम करना कुछ ऐसा है।

मैं पहले से ही कर रही करने की कोशिश की:

r = GroupResult(taskset_id) 

लेकिन यह काम नहीं करता है, r.results() हमेशा खाली है।

क्या मुझे GroupResult.save() और GroupResult.restore()methods का उपयोग करना चाहिए?

उत्तर

14

हां आपको परिणाम को सहेजना होगा और फिर इसे पुनर्स्थापित करना होगा।

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) 

मेरे पास एक ही समस्या थी और अंततः सहेजने/पुनर्स्थापित करने के बारे में आपका संकेत देखने के बाद इसे समझ लिया गया।

+0

हाँ, मैं अंततः उस कोड का उपयोग कर समाप्त करता हूं। ;) – Andrea