आप एक अतिरिक्त "प्रेषण" कतार के साथ रेडिस सूचियों का उपयोग करके इसे प्राप्त कर सकते हैं जो सभी कार्यकर्ता BRPOP
पर उनके काम के लिए। प्रेषण कतार में प्रत्येक कार्य को मूल कतार आईडी के साथ टैग किया गया है, और जब कार्यकर्ता ने कार्य पूरा कर लिया है तो वह इस मूल कतार में जाता है और RPOPLPUSH
करता है किसी अन्य कार्यकर्ता के लिए अगली नौकरी उपलब्ध कराने के लिए प्रेषण कतार में। इसलिए प्रेषण कतार में अधिकतम num_queues . होंगे तत्व।
स्रोत कतार खाली होने पर आपको एक चीज को संभालना होगा प्रेषण कतार की प्रारंभिक आबादी। यह प्रकाशक द्वारा शुरू में सेट की गई प्रत्येक कतार के लिए "खाली" ध्वज के खिलाफ किया गया चेक हो सकता है, और कार्यकर्ता द्वारा भी सेट किया जा सकता है जब प्रेषण के लिए मूल कतार में कुछ भी नहीं बचा है। यदि यह ध्वज सेट है, तो प्रकाशक केवल LPUSH
. कर सकता है पहली नौकरी सीधे प्रेषण कतार पर।