मेरे पास कई कर्मचारी हैं जो साइडकीक का उपयोग करके चलाए जा रहे हैं और सिडेटिक का उपयोग करके निर्धारित हैं। मैं साइडकीक-प्रो की बैचिंग कार्यक्षमता के समान कॉलबैक निष्पादित करने से पहले सभी श्रमिकों को पूरा करने के लिए इंतजार करने का सबसे अच्छा तरीका सलाह ढूंढ रहा हूं। संभावित विकल्पों पर कोई सलाह बहुत सराहना की जाएगी!समांतर साइडकीक श्रमिकों के लिए एक और विधि कॉल करने से पहले सभी को पूरा करने के लिए कैसे प्रतीक्षा करें?
उत्तर
सरल उपयोग के मामलों के लिए आप प्रत्येक कतार के लिए लंबित नौकरियों की गिनती के लिए stats पर मतदान कर सकते हैं।
तो यदि आप जानते हैं कि आपकी सभी नौकरियां एक विशिष्ट कतार में जाती हैं, और अन्य जगहों से उस कतार में कोई और नौकरियां नहीं जा रही हैं तो यह पर्याप्त होगा। और अधिक उन्नत/जटिल उपयोग के मामलों के लिए आप एक घटना API source
एक और सरल समाधान एक Redis आधारित काउंटर (के बाद से आप पहले से ही Redis उपयोग कर रहे हैं) हर काम से उपयोग करें और यह atomically decrement है, और publish उल्लेख कर सकते हैं एक बार गिनती शून्य तक पहुंच ।
आप एक विधि लिख सकते हैं:
def wait_for_sidekiq
sleep(1) until Sidekiq::Workers.new.size == 0 && Sidekiq::Queue.new.size == 0
end
मैंने देखा कि आपने यह सुनिश्चित करें कि नौकरियों पहली जगह में पंक्तिबद्ध हो गया बनाने के सुझाव है:
def wait_for_queuing
sleep(1) until Sidekiq::Queue.new.size > 0 || Sidekiq::Workers.new.size > 0
end
यह आवश्यक है, क्योंकि कभी-कभी पहले नौकरियों को छोड़ने से पहले विधि को कुछ मिलीसेकंड निष्पादित किया जा सकता है, ताकि वह बिल्कुल इंतजार न करे।
आप इस Sidekiq-batch gem देखना चाहिए, मैं पहले से ही यह कोशिश करते हैं और यह सिर्फ तरह Sidekiq के प्रो बैच काम करता है, और यह मुक्त
आशा है यह मदद कर सकता है
- 1. एसिंक विधि को पूरा करने के लिए कैसे प्रतीक्षा करें?
- 2. प्रतीक्षा पूरा करने के लिए
- 3. सिस्टम के लिए प्रतीक्षा करें। थ्रेडिंग। मौजूदा प्रोग्राम से पहले पूरा करने के लिए टिमर कॉलबैक
- 4. कई धागे को पूरा करने के लिए कैसे प्रतीक्षा करें?
- 5. RXJS एक सरणी में सभी observables के लिए प्रतीक्षा करें पूरा करने के लिए (या त्रुटि)
- 6. सभी बूस्टों को पूरा करने के लिए कैसे प्रतीक्षा करें: एएसओ के स्टैक्फुल कोरआउट्स?
- 7. किसी अन्य फ़ंक्शन को कॉल करने से पहले div से लोड करने के लिए कैसे प्रतीक्षा करें?
- 8. $ (विंडो)। वेबपृष्ठ छोड़ने से पहले AJAX कॉल को समाप्त करने के लिए प्रतीक्षा करें
- 9. React.js, फ़ंक्शन ट्रिगर करने से पहले सेटस्टेट को समाप्त करने के लिए प्रतीक्षा करें?
- 10. मैं AJAX कॉल को लौटने से पहले समाप्त करने के लिए jQuery प्रतीक्षा कैसे करूं?
- 11. एनिमेटर को समाप्त करने के लिए कैसे प्रतीक्षा करें?
- 12. फ्यूचर्स के बैच को पूरा करने के लिए प्रतीक्षा करते समय टाइमआउट?
- 13. तैयार करने से पहले didSelectRowAtIndexPath को कॉल करने के लिए कैसे करें?
- 14. सभी कार्यों को पूरा करने के लिए सिंक्रनाइज़ेशन ऑब्जेक्ट
- 15. jQuery: प्रसंस्करण जारी रखने के लिए कार्य पूरा करने के लिए प्रतीक्षा करें?
- 16. कार्य रद्द करें और इसे पूरा करने के लिए प्रतीक्षा करें
- 17. TinyMCE लोड करने के लिए प्रतीक्षा करें
- 18. संपत्ति परिवर्तन के बाद विधि को कॉल करने के लिए
- 19. एक मॉड्यूलर sinatra आवेदन के कॉन्फ़िगर ब्लॉक से कॉल करने के लिए एक विधि को परिभाषित करने के लिए कैसे?
- 20. किसी एक वर्ग से दूसरे वर्ग में विधि को कॉल करने के लिए कैसे करें (आईओएस)
- 21. एस्प्रेसो लोड करने के लिए WebView के लिए प्रतीक्षा करें
- 22. अगले फ़ंक्शन ट्रिगर होने से पहले लोड करने के लिए iframe के लिए प्रतीक्षा करें?
- 23. समय के बिना पूरा करने के लिए सभी goroutines खत्म करने के लिए कैसे इंतजार करें। सो जाओ?
- 24. माता-पिता को सभी बाल प्रक्रियाओं के लिए प्रतीक्षा करें
- 25. जारी रखने से पहले JFrame को बंद करने के लिए कैसे प्रतीक्षा करें?
- 26. निरंतर फ़ंक्शन से पहले समाप्त करने के लिए jQuery शो() के लिए प्रतीक्षा करें?
- 27. क्यों प्रतीक्षा करने के लिए प्रतीक्षा प्रतीक्षा प्रतीक्षा नहीं है?
- 28. जावा भविष्य को रद्द करें - खत्म करने के लिए कैसे प्रतीक्षा करें?
- 29. कैसे .hover() प्रतीक्षा करने के लिए कहें?
- 30. रीडलाइन() को पूरा करने के लिए
दुर्भाग्य से सबसे अच्छा तरीका है मैं मिल गया है करने के लिए है " पता है "बैच में कितनी नौकरियां हैं, और फिर पूर्ण होने पर गिनती रखें (या त्रुटि)। – vereecjw
एक कारण है कि मैं उस सुविधा के लिए पैसे लेता हूं: यह बेहद उपयोगी है और साथ ही साथ निर्माण करना बेहद मुश्किल है। मुझे लगता है कि आपके पास कोई बजट नहीं है? –
यह एक ऐसा कदम है जो मुझे लगता है कि हम अंततः काम करेंगे, लेकिन जब तक हमारी ईटीएल प्रक्रिया अधिक नहीं हो जाती है और हम अधिक डेटा स्रोतों/अधिक श्रमिकों का उपयोग कर पढ़ रहे हैं, तो इस चरण में यह 100% आवश्यक नहीं है। यह निश्चित रूप से हमारे रडार पर कुछ है, लेकिन इस बिंदु पर, मैं सिर्फ एक अस्थायी समाधान की तलाश में हूं। – AvocadoRivalry