मैं समस्या को हल करने के लिए जावा में एक काफी मानक तंत्र है में प्रवास:जावा संगामिति से स्काला संगामिति
- कार्य आइटम एक विशेष समय
- पर अमल करने के लिए निर्धारित किया जाना चाहिए प्रत्येक कार्य आइटम तब तक प्रतीक्षा करनी होगी एक शर्त सच
- कार्य आइटम बनने रद्द
इस प्रकार समाधान मैं का उपयोग कर रहा है के रूप में किया जाना चाहिए:
- मेरे काम
- आइटम शेड्यूल करने के लिए एक एकल पिरोया अनुसूचक है एक
ExecutorService
(मल्टी-थ्रेडेड हो सकता है) - प्रत्येक निर्धारित कार्य आइटम तो
ExecutorService
को वास्तविक कार्य सबमिट करता है। लौटाFuture
मानचित्र में कैश किया गया है। एक पूरा होने सेवा जब काम पूरा हो गया है - आइटम कैश की गई वायदा
के माध्यम से रद्द किया जा सकता कैश से भविष्य को दूर करने के लिए किया जाता है, मेरे निष्पादक की संख्या के रूप में कम से कम के रूप में बड़ा होने की जरूरत है काम की वस्तुओं को अवरुद्ध करना मुझे उम्मीद है लेकिन यह अभ्यास में कोई समस्या नहीं है।
तो अब मैं स्कैला में कोडिंग कर रहा हूं और अभिनेता ढांचे का उपयोग कर रहा हूं। यह मानते हुए कि मेरे काम आइटम एक घटना एक अभिनेता के लिए भेजा में समझाया जा सकता है:
- क्या तंत्र मैं एक विशेष समय के लिए एक कार्य आइटम शेड्यूल करने के लिए प्रयोग करेंगे?
- यदि कोई कार्य आइटम किसी अभिनेता को भेजा गया एक ईवेंट है, तो मैं यह कैसे सुनिश्चित कर सकता हूं कि बैकिंग थ्रेड पूल एक ही समय में अवरुद्ध हो सकता है जो
- मैं पहले निर्धारित समय का कारण कैसे बना सकता हूं आइटम रद्द किया जाना है?
क्या आप "एक शर्त सच होने" का विस्तार कर सकते हैं? क्या यह वैश्विक राज्य है? क्या यह I/O है? – Apocalisp
मेरा मतलब है कि काम के हिस्से के रूप में, प्रक्रिया को कुछ हो रहा है (जैसे फ़ाइल आने वाली) पर अवरुद्ध करना पड़ सकता है –