रोकना शुरू कर रहा है मैं ScheduledExecutorService का उपयोग कर रहा हूं, और इसके बाद मैं इसे shutdown विधि कहता हूं, मैं उस पर एक रननेबल शेड्यूल नहीं कर सकता। scheduleAtFixedRate(runnable, INITIAL_DELAY, INTERVAL, TimeUnit.SECONDS)
पर कॉल करने के बाद shutdown()
java.util.concurrent फेंकता है। अस्वीकृत निष्पादन अपवाद। shutdown()
के बाद ScheduledExecutorService पर एक नया कार्य चलाने का कोई और तरीका है?अनुसूचितExecutorService कई बार
उत्तर
आप शेड्यूलर का पुन: उपयोग कर सकते हैं, लेकिन आपको इसे बंद नहीं करना चाहिए। इसके बजाय, शेड्यूल एटफ़िक्स्डरेट विधि का आविष्कार करते समय आप चल रहे थ्रेड को रद्द कर सकते हैं। पूर्व:
//get reference to the future
Future<?> future = service.scheduleAtFixedRate(runnable, INITIAL_DELAY, INTERVAL, TimeUnit.SECONDS)
//cancel instead of shutdown
future.cancel(true);
//schedule again (reuse)
future = service.scheduleAtFixedRate(runnable, INITIAL_DELAY, INTERVAL, TimeUnit.SECONDS)
//shutdown when you don't need to reuse the service anymore
service.shutdown()
मैं वसंत पर्यावरण में नई सेवाओं को बंद करने और बनाने में सक्षम था, लेकिन ईजेबी मुझे दुःख दे रहे थे। यह चाल है, धन्यवाद! –
@Alex पहली भविष्य की वस्तु तब तक रिलीज़ नहीं होगी जब तक कि सेवा बंद न हो जाए। जब सेवा लंबे समय तक रहती है, और कई बार शेड्यूल होती है तो यह एक स्मृति रिसाव होगी। यदि सही है, तो स्मृति लीकिंग से बचने का कोई तरीका है? – Nickolas
मैं गलत हूं, रद्द किया गया भविष्य कार्य कार्य में जोड़ा नहीं जाएगा Queue, इसलिए इसे जीसी द्वारा जारी किया जाएगा। – Nickolas
shutdown()
की javadocs कहते हैं:
Initiates an orderly shutdown in which previously submitted tasks are executed,
but no new tasks will be accepted.
तो, आप shutdow()
फोन नहीं कर सकते हैं और उसके बाद नए कार्य शेड्यूल करें।
शट डाउन के बाद नए कार्यों को फिर से शेड्यूल करने के बारे में कोई सुझाव? – walters
या तो एक नया अनुसूचितExecutorService बनाएं या मौजूदा को बंद न करें। क्या कोई कारण है कि आप इसे बंद कर रहे हैं? –
आप इसे बंद करने के बाद अपने निष्पादक को नए कार्यों को स्वीकार नहीं कर सकते हैं। अधिक प्रासंगिक सवाल यह है कि आपको इसे पहले स्थान पर बंद करने की आवश्यकता क्यों है? आपके द्वारा बनाए गए निष्पादक को आपके आवेदन या उप-प्रणाली के पूरे जीवनकाल में फिर से उपयोग किया जाना चाहिए।
- 1. कई बार
- 2. EKEventStoreChangedNotification कई बार
- 3. MySQL टेबल कई बार
- 4. DataBindingComplete कई बार
- 5. एक IEnumerable कई बार
- 6. सी ++ गेटलाइन() कई बार
- 7. JSF preRenderView कई बार
- 8. Automapper - CreateMap, कई बार
- 9. एक्शन विधि को कई बार
- 10. कई पुस्तकालयों पर एक बार
- 11. पायथन डिस्प्ले स्ट्रिंग कई बार
- 12. कोड विश्लेषण - वस्तु कई बार
- 13. पेज_ClientValidate कई बार मान्य है।
- 14. कई बार कास्टिंग से बचें
- 15. jquery कॉलबैक को कई बार
- 16. jQuery कई बार फायरिंग बाध्य?
- 17. क्रोम एक बार कई बार अनुरोध भेजता है
- 18. चाइल्डविंडो बंद करें बटन इवेंट हैंडलर कई बार निष्पादित करता है अगर यह कई बार
- 19. एक ही पृष्ठ पर कई बार Greasemonkey स्क्रिप्ट चलाएं, कई बार?
- 20. PostAuthenticateRequest कई बार आग लगती है
- 21. एक ककड़ी की सुविधा कई बार
- 22. awakeFromNib विधि कहा जाता है कई बार
- 23. कोको: NSNib कई बार स्वतंत्र रूप से
- 24. jQuery .load() कॉलबैक समारोह कई बार
- 25. रेल के बाद कॉलबैक को कई बार
- 26. NSURLConnection कई बार चलाया जाता है
- 27. कई जावा कक्षाओं में एक बार
- 28. एक बार लिखें, कई mysql फ़ील्ड पढ़ें
- 29. एंड्रॉइड एप्लिकेशन क्लास विधि को कई बार
- 30. @ViewScoped प्रबंधित बीन कई बार पोस्टबैक
यह व्यवहार की उम्मीद है। क्या आप समझा सकते हैं कि आप क्या करने का प्रयास कर रहे हैं और आप शटडाउन के बाद एक और रननेबल क्यों निष्पादित करना चाहते हैं? – Jeremy