2012-12-27 16 views
10

मैं अपने वसंत आवेदन में क्वार्ट्ज नौकरी को एकीकृत करने की कोशिश कर रहा हूं। मुझे यह उदाहरण here से मिला है। उदाहरण simpletrigger का उपयोग करके और crontrigger का उपयोग करके एक विशिष्ट समय पर बार-बार अंतराल पर निष्पादित नौकरियों को दिखाता है।क्वार्ट्ज एप्लिकेशन स्टार्टअप पर एक बार नौकरी

मेरी आवश्यकता केवल एप्लिकेशन स्टार्टअप पर नौकरी चलाने के लिए है। मैं संपत्ति repeatInterval हटा दिया, लेकिन आवेदन एक अपवाद फेंकता है:

org.quartz.SchedulerException: Repeat Interval cannot be zero 

वहाँ सिर्फ एक बार एक काम अनुसूची करने के कोई तरीका है?

धन्यवाद ..

उत्तर

7

मिले जवाब here

repeatInterval की उपेक्षा और सेटिंग repeatCount = 0 करता है कि मैं क्या चाहता था।

1

वसंत SimpleTriggerFactoryBean नौकरी करता है: यदि आप प्रारंभ समय निर्दिष्ट नहीं करते हैं, तो यह इसे 'अब' पर सेट कर देगा।

फिर भी मुझे लगता है कि लंबे समय से चलने वाली एक बार नौकरी को एंटी-पैटर्न माना जाना चाहिए, क्योंकि यह 2-नोड क्लस्टर में भी काम नहीं करेगा: यदि नौकरी चलाने वाला नोड नीचे चला जाता है, तो वहां कोई नहीं होगा एक जो नौकरी को पुनरारंभ करेगा।

मुझे नौकरी मिलना पसंद है जो दोहराता है उदा। हर घंटे, लेकिन @DisallowConcurrentExecution के साथ एनोटेटेड। इस तरह आप गारंटी देते हैं कि ठीक से एक नौकरी चल रही होगी, दोनों जब नोड ने मूल रूप से नौकरी की मेजबानी की थी, और उसके बाद यह नीचे चला गया।

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