2015-10-13 5 views
6

का उपयोग कर केटल जॉब/ट्रांसफॉर्मेशन को रोकना बंद करें मैं जावा का उपयोग करके एक वेब-ऐप आधारित ईटीएल (केटल इंजन के साथ) विकसित कर रहा हूं।जावा

मैं चल रहे नौकरी को रोकने की कोशिश करते समय मुद्दों में भाग रहा हूं। मुझे यकीन नहीं है कि CarteSingleton.java का उपयोग सही है। मैं एक कस्टम सिंगलटन मानचित्र का उपयोग कर रहा हूँ।

Job job = new Job(null, jobMeta); 
job.setLogLevel(LogLevel.DETAILED); 
job.setGatheringMetrics(true); 
job.start(); 

एक बार job.start() शुरू हो जाती है नीचे के रूप में, मैं एक कस्टम सिंगलटन नक्शे में उस काम वस्तु की दुकान और सही नौकरी उद्देश्य यह है कि नक्शे में जमा हो गया था प्राप्त करने का प्रयास कर रहा हूँ

मेरे कोड है , और रोकथाम पर() नीचे कोड देखें) एक और आरईएसटी कॉल के साथ, जबकि नौकरी की स्थिति चल रही है, इसे रोकने के लिए। लेकिन यह चल रहे नौकरी को रोकता नहीं है। केटल इंजन को इस बारे में अधिसूचित नहीं किया जा रहा है! नौकरी निष्पादन जारी है। .kjb/.ktr SPOON का उपयोग कर बना रहा था, हालांकि मैं निष्पादन को चलाने/रोकने के लिए SPOON का उपयोग नहीं कर रहा हूं।

वहाँ, बदलने के लिए

same job object 
    job.stopAll(); 

उपयोग करने के लिए आप एपीआई और नमूना उदाहरण पर प्रबुद्ध कृपया सकते हैं, यदि कोई एक चल रहा है काम या परिवर्तन जावा का उपयोग बंद करने में सक्षम होने की किसी भी केटल एपीआई config मैंने है ?

कोई भी पॉइंटर्स या यहां मदद मिलेगी! एक बार फिर धन्यवाद।

सादर, संजीव

उत्तर

5

आपका दृष्टिकोण सही हो रहा है। हालांकि, ध्यान दें कि तत्काल रोकथाम की गारंटी नहीं दी जा सकती है - यह केवल एक झंडा सेट करता है जो निष्पादन को जारी रखने के लिए जारी नहीं होना चाहिए।

Job.stopAll() sets the flag और यह checked before the execution starts है, लेकिन अगर यह शुरू हो गया है यह स्थान

Trans.stopAll() इसी तरह बर्ताव करता है पर यह बंद नहीं होगा। It asks each step to stop और वह ध्वज is checked inside चरण।

+0

धन्यवाद। लेकिन, इसकी गारंटी देने का दृष्टिकोण क्या है? क्या पेंटाहो कोई नमूना प्रदान करता है? मैंने अपनी साइट पर भी पोस्ट किया - लेकिन अभी तक कोई प्रतिक्रिया नहीं मिली। स्टैक ओवरफ्लो अधिक डेवलपर-अनुकूल है! –

+1

असल में, मुझे लगता है कि कोई भी गारंटी शायद ही संभव है। जावा में, थ्रेड को मैन्युअल रूप से रोकने के लिए कोई _legal_ तरीका नहीं है। चूंकि 'नौकरी' 'थ्रेड 'से लिया गया है और परिवर्तनों के चरणों को आम तौर पर अलग-अलग धागे में निष्पादित किया जाता है, इसलिए उन्हें तुरंत रोकने का कोई तरीका नहीं है। –