क्या सेलेरी 3.0 से चेन का उपयोग करके बनाए गए वर्कफ़्लो को रोकने/फिर से शुरू करने का कोई तरीका है?Django Celery वर्कफ़्लो चेन रोकें/फिर से शुरू करें
असल में, हमारे सिस्टम में हमारे दो अलग-अलग प्रकार के कार्य हैं: इंटरैक्टिव और गैर-इंटरैक्टिव वाले। गैर-इंटरैक्टिव वाले हमारे पास सभी पैरामीटर हैं, लेकिन इंटरैक्टिव लोगों को उपयोगकर्ता इनपुट की आवश्यकता है। ध्यान दें कि इंटरैक्टिव कार्यों के लिए, हम केवल उपयोगकर्ता इनपुट के लिए पूछ सकते हैं जब श्रृंखला में पिछले सभी कार्यों को पूरा कर लिया गया है, क्योंकि उनके परिणाम इंटरैक्टिव कार्यों को प्रभावित करेंगे (यानी हम वास्तविक श्रृंखला बनाने से पहले उपयोगकर्ता इनपुट के लिए नहीं पूछ सकते हैं)।
इस पर कैसे पहुंचे इस पर कोई सुझाव? वास्तव में एक नुकसान यहाँ ..
वर्तमान विचारों पर:
- (अजवाइन आयात टास्क से) कार्य के दो उपवर्गों बनाएँ। इंटरैक्टिव कार्य उपclass में एक अतिरिक्त उदाहरण (वर्ग सदस्य) चर जोड़ें जो डिफ़ॉल्ट रूप से गलत पर सेट है और यह दर्शाता है कि कुछ उपयोगकर्ता इनपुट की अभी भी आवश्यकता है। किसी भी तरह से कार्य के उदाहरण तक पहुंच है, और इसे सेलेरी कार्यकर्ता के बाहर से सच में सेट किया गया है (हालांकि मैंने इसे थोड़ा सा देखा है और यह किसी अन्य मॉड्यूल से सीधे कार्य ऑब्जेक्ट तक पहुंच नहीं लग रहा है)
- इंटरैक्टिव नौकरियों द्वारा सीमांकित कई श्रृंखलाओं में श्रृंखला को विभाजित करें। एक बार चेरी के अंत तक पहुंचने के बाद सेलेरी कार्यकर्ता के बाहर किसी प्रकार की तंत्र का पता लगाएं और इंटरैक्टिव कार्य के इंटरैक्टिव क्लाइंट साइड घटक को ट्रिगर करें। एक बार उपयोगकर्ता ने इस डेटा को दर्ज कर लिया है, डेटा प्राप्त करें, और नई श्रृंखला शुरू करें जहां इंटरैक्टिव कार्य नई श्रृंखला के सिर पर है।