मुझे आश्चर्य है कि क्या सेबरी के साथ काम करने के लिए खरगोश एमक्यू या रेडिस स्थापित करने का कोई तरीका है ताकि जब मैं कतार में कोई कार्य भेजूं, तो यह नहीं जाता कार्यों की एक सूची में, बल्कि डुप्लिकेट से बचने के लिए, मेरे कार्य के पेलोड के आधार पर की गई कार्यों के सेट में।वितरित कार्य कतार सूची के आधार पर डेटा संरचना के रूप में सेट पर आधारित
यहां अधिक संदर्भ के लिए मेरा सेटअप है: पायथन + सेलेरी। मैंने रैबिटएमक्यू को बैकएंड के रूप में आजमाया है, अब मैं रेडिस को बैकएंड के रूप में उपयोग कर रहा हूं क्योंकि मुझे 100% विश्वसनीयता, उपयोग करने में आसान, छोटी मेमोरी पदचिह्न इत्यादि की आवश्यकता नहीं है
मेरे पास लगभग 1000 आईडी हैं जिनकी आवश्यकता है काम बार-बार किया जाता है। मेरी डेटा पाइपलाइन का चरण 1 शेड्यूलर द्वारा ट्रिगर किया जाता है और यह चरण 2 के लिए कार्यों को आउटपुट करता है। कार्यों में केवल आईडी होती है जिसके लिए काम करने की आवश्यकता होती है और वास्तविक डेटा डेटाबेस में संग्रहीत होता है। मैं बिना किसी हानि के चरण 1 और चरण 2 कार्यों के किसी भी संयोजन या अनुक्रम चला सकता हूं।
यदि चरण 2 में चरण 1 द्वारा कार्य आउटपुट की मात्रा से निपटने के लिए पर्याप्त प्रसंस्करण शक्ति नहीं है, तो मेरा कार्य कतार बढ़ता और बढ़ता है। यदि कार्य कतार का उपयोग सूचियों के बजाय अंतर्निहित डेटा संरचना के रूप में सेट किया जाता है तो यह मामला नहीं होना चाहिए।
क्या सूचियों से स्विच करने के लिए वितरित कार्य कतार के रूप में सेट करने के लिए एक ऑफ-द-शेल्फ समाधान है? क्या सेलेरी इस में सक्षम है? मैंने हाल ही में देखा है कि रेडिस ने अभी कतार प्रणाली का अल्फा संस्करण जारी किया है, इसलिए यह अभी तक उत्पादन के उपयोग के लिए तैयार नहीं है।
क्या मुझे अपनी पाइपलाइन को अलग-अलग आर्किटेक्ट करना चाहिए?
खरगोश एमक्यू के साथ आप 1 के अधिकतम कतार गहराई ('x-max-length') के साथ प्रत्येक अद्वितीय आईडी के लिए एक कतार बना सकते हैं। 1000 अलग-अलग कतारों को प्रकाशित करने और सदस्यता लेने की अतिरिक्त हाउसकीपिंग है, लेकिन आपको आवश्यकता होने पर डुप्लिकेट छोड़ दिया जाएगा। – tariksbl
यह वास्तव में कामकाजी प्रकार का तर्क है जिसे मैं ढूंढ रहा हूं, लेकिन यह विशेष समाधान थकाऊ लगता है और मैं भी आगे बढ़ने वाले खरगोश एमक्यू से दूर रहना पसंद करूंगा। हालांकि, रचनात्मकता के लिए धन्यवाद! – Heliodor