2010-06-04 14 views
15

पर टॉमकैट और क्वार्ट्ज शेड्यूलर का एकीकरण मैं टॉमकैट संस्करण 6.0 का उपयोग कर रहा हूं। मेरी आवश्यकता यह है कि जब टोमकैट शुरू होता है, तो मैं QuartzScheduler शुरू करना चाहता हूं जो नियमित अंतराल पर कुछ नौकरियां निर्धारित करेगा। मैं इसे करने का सबसे अच्छा तरीका जानने का प्रयास कर रहा हूं।स्टार्टअप

  1. मैं web.xml फ़ाइल में "load-on-startup" वर्णनकर्ता के साथ एक सर्वलेट के माध्यम से यह कर सकते हैं अनुसूचक शुरू करने और सर्वलेट अंदर कार्य शेड्यूल करने के लिए - यहाँ विकल्प है कि मैं के बारे में सोच सकते हैं।
  2. ContextListener का उपयोग करके किया जा सकता है (यह 1 से मेरे लिए बेहतर दृष्टिकोण लगता है)। यह contextInitialized विधि के अंदर शेड्यूलर प्रारंभ करने और contextDestroyed विधि के अंदर शेड्यूलर को बंद करने के लिए एक साफ़ दृष्टिकोण हो सकता है।
  3. एमबीन-डिस्क्रिप्टर का उपयोग करना। मैं एक एमबीन विकसित करता हूं जो सर्वर शुरू हो जाएगा जब सर्वर mbeans-descriptor.xml फ़ाइल के साथ शुरू होता है।

मेरे लिए, ऐसा लगता है कि दूसरा दृष्टिकोण बेहतर है। तीसरा व्यक्ति एक अच्छा विचार नहीं हो सकता है क्योंकि यह स्पष्ट रूप से जेकनोल द्वारा निगरानी की जाने वाली एमबीन नहीं है। मेरा उद्देश्य शेड्यूलर शुरू करना है और टॉमकैट बंद होने पर इसे रोकना है। क्या ऐसा करने के लिए कोई बेहतर और क्लीनर तरीका है?

+0

यहां वसंत के साथ ऐसा करने का एक उदाहरण दिया गया है: http://bxm.at/blogs/java/2007/08/29/quartz_spring –

+0

@AshKim द्वारा लिंक किया गया ब्लॉग स्थानांतरित हो गया है: http: // ब्लॉग। ehrnhoefer.com/2007-08-29-quartz-2-spring/ – Fodder

उत्तर

14

मैं एक सर्वलेट का उपयोग करके दूसरे दृष्टिकोण की भी सिफारिश करता हूं जो केवल कुछ सेवा शुरू करने के लिए मौजूद है, जबकि एक सामान्य उपयोग, मुझे हैकी लगता है।

ऐसा लगता है कि क्वार्ट्ज पहले से ही इस सटीक उद्देश्य के लिए एक ServletContextListener प्रदान करता है:

http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/ServletInitScheduler

और

http://www.quartz-scheduler.org/api/2.0.0/

जानकारी के लिए।

+0

Opps कभी नहीं जानता था कि क्वार्ट्ज पहले से ही ContextListenner प्रदान करता है। आपका बहुत बहुत धन्यवाद। – Shamik

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