मेरे पास 200 कमांड की एक सूची/कतार है जिसे मुझे लिनक्स सर्वर पर खोल में चलाने की आवश्यकता है।लिनक्स पर एक कमांड कतार से समानांतर प्रसंस्करण (बैश, पायथन, रूबी ... जो कुछ भी)
मैं केवल एक बार में अधिकतम 10 प्रक्रियाओं (कतार से) चलाना चाहता हूं। कुछ प्रक्रियाओं को पूरा करने में कुछ सेकंड लगेंगे, अन्य प्रक्रियाओं में अधिक समय लगेगा।
जब कोई प्रक्रिया समाप्त होती है तो मैं चाहता हूं कि अगला आदेश कतार से "पॉप" हो और निष्पादित हो।
क्या किसी को भी इस समस्या को हल करने के लिए कोड है?
आगे विस्तार:
वहाँ काम के 200 टुकड़े, किया जाना किसी प्रकार की एक कतार में जरूरत है कि है। मैं एक ही समय में काम के लगभग 10 टुकड़े चलाना चाहता हूं। जब एक धागा काम के टुकड़े को खत्म करता है तो उसे कतार के अगले भाग के लिए पूछना चाहिए। यदि कतार में कोई और काम नहीं है, तो धागा मरना चाहिए। जब सभी धागे मर गए हैं तो इसका मतलब है कि सभी काम किए गए हैं।
वास्तविक समस्या जिसे मैं हल करने का प्रयास कर रहा हूं imapsync
का उपयोग पुराने मेल सर्वर से एक नए मेल सर्वर से 200 मेलबॉक्स सिंक्रनाइज़ करने के लिए कर रहा है। कुछ उपयोगकर्ताओं के पास बड़े मेलबॉक्स होते हैं और सिंक करने में लंबा समय लगता है, दूसरों के पास बहुत छोटे मेलबॉक्स होते हैं और जल्दी सिंक होते हैं।
है जैसा कि मैंने आशा की थी कि यह ठीक है। मैंने मेकफ़ाइल उत्पन्न करने के लिए कुछ कोड लिखा था। यह 1000 से अधिक लाइनों से समाप्त हो गया। धन्यवाद! – mlambie
+1 यह वास्तव में बहुत चालाक है! – progo
मैंने पाया कि यदि कोई भी आदेश किसी त्रुटि कोड से निकलता है, तो भविष्य में नौकरियों के निष्पादन को रोकने से बाहर निकलेंगे। कुछ स्थितियों में, यह समाधान आदर्श से कम है। इस परिदृश्य के लिए कोई सिफारिशें? –