2012-11-24 21 views
5

हर साल एक वेब एप्लिकेशन में स्वचालित रूप से कार्य कैसे निष्पादित करें? क्या टाइमर क्लास इसके लिए सहायक है? मैंने क्वार्ट्ज के बारे में भी सुना? मैंने अपने पेज में पंजीकृत किया लेकिन ऐसा लगता है कि यह मुफ़्त नहीं है। आपके सहयोग के लिए धन्यवाद।जावा वेब एप्लिकेशन में हर साल एक कार्य निष्पादित करें

उत्तर

3

मैं सुझाव दूंगा कि आप क्रॉन जैसे कुछ का उपयोग करें। आपकी आवश्यकता यूनिक्स क्रॉन डिमन की गतिविधि के समान ही है। एक जावा लाइब्रेरी है जो क्रोन 4j (http://www.sauronsoftware.it/projects/cron4j/) नामक समान क्षमता प्रदान करती है।

नीचे कुछ शेड्यूलर हैं जिनका आप उपयोग कर सकते हैं।

+0

यदि मैं विंडोज़ पर चल रहा हूं तो cronjob का उपयोग कैसे करें? –

+1

@DiegoRamos: क्रॉन लिनक्स पर्यावरण के लिए है। विंडोज वातावरण के लिए क्रॉन के समतुल्य विंडोज़ कार्य शेड्यूलर है। एक विधि उस उपकरण का उपयोग करके एक नया कार्य बनाना होगा और स्क्रिप्ट के रूप में एक जार फ़ाइल सेट करना होगा। जार फ़ाइल में वह कोड हो सकता है जिसे आपको समय-समय पर चलाने की आवश्यकता होती है। एक और तरीका यह है कि आप कमांड स्क्रिप्ट बना सकते हैं और इसे जार फ़ाइल के बजाय टास्क शेड्यूलर में जोड़ सकते हैं। निम्नलिखित लिंक देखें। http://stackoverflow.com/questions/12034177/running-a-java-program-as-a-scheduled-task –

3

क्वार्ट्ज निश्चित रूप से एक अच्छा विकल्प है, यह free और ओपनसोर्स है और Apache 2.0 License का उपयोग करता है (आपको डाउनलोड करने के लिए पंजीकरण करने की आवश्यकता नहीं है)। यदि आप * निक्स वातावरण में हैं तो आप क्रॉन का भी उपयोग कर सकते हैं।

आप java.util.Timer का भी उपयोग कर सकते हैं, लेकिन यदि आप अपना उपयोग केस बेहद तुच्छ है तो आप केवल ऐसा ही करेंगे और आप सुनिश्चित करते हैं कि आप अपने वेब ऐप के स्टार्टअप पर कुछ प्रकार की दृढ़ता परत के आधार पर अपने Timer सही ढंग से पुनरारंभ करें।

+1

क्रॉन => या Windows में एक निर्धारित कार्य। – Max

+0

मैं, बल्कि एक क्रॉन नौकरी भी करता हूं, क्योंकि इसे पूरे वर्ष चलाने के लिए वीएम की आवश्यकता नहीं होती है, केवल एक बार निष्पादित किया जाता है। – Andy

+0

उत्तर के लिए धन्यवाद लेकिन खेद है कि मैं विंडोज वातावरण में cronjob का उपयोग कैसे कर सकता हूं? क्या यह सकारात्मक है? मैं एक cronexpression के बारे में पढ़ रहा था, लेकिन यह केवल यूनिक्स के लिए प्रतीत होता है? –

2

व्यवसाय हितधारकों के साथ जांच करने पर विचार करें यदि एक नौकरी जो साल में केवल एक बार चलती है, वास्तव में पूरी तरह से स्वचालित होनी चाहिए। मेरे अनुभव से, एक अच्छा मौका है कि शेड्यूल में मामूली बदलाव आएंगे (उदाहरण के लिए सप्ताह के किस दिन नौकरी चलाना चाहिए?) या इतने लंबे समय के बाद नौकरी के चरणों में।

इसके अलावा, भविष्य में सिस्टम में अन्य निर्धारित कार्यवाही भी शामिल की जाएंगी? यदि नहीं - क्या प्रति वर्ष केवल एक नौकरी होने पर सिस्टम के स्वचालित निष्पादन के ओवरहेड (कार्यान्वयन, परीक्षण, निगरानी आदि) को जोड़ने के लायक होंगे? इसे कम से कम कुछ चलाना आसानी से भुलाया जा सकता है और जब कोई टूटा हुआ हो तो कोई भी नोटिस नहीं कर सकता है।

इस विकल्प पर विचार करें: अपने ऐप में कहीं भी एक बटन जोड़ें, मैन्युअल रूप से नौकरी को बंद करने के लिए, शायद एक व्यवस्थापक पृष्ठ पर। यदि आपके ऐप में डैशबोर्ड या लैंडिंग पृष्ठ है, तो कुछ उपयोगकर्ताओं के लिए केवल कुछ उपयोगकर्ताओं के लिए दिखाई देने वाली जानकारी जोड़ें, उदाहरण के लिए: "एक्स नौकरी 11/23/2011 को आखिरी बार चल रही होनी चाहिए- कृपया अगली रन शुरू करें 11/30/2012 से पहले "।

संबंधित मुद्दे