2010-12-08 17 views
36

मैं शेड्यूलिंग के संबंध में Spring 3.0 doc एस पढ़ रहा हूं। मैं क्वार्ट्ज के लिए स्प्रिंग के जॉब डेंटलबीन की तरफ झुका रहा हूं। हालांकि, @ शेड्यूल्ड एनोटेशन ने मेरी आंख पर कब्जा कर लिया है। ऐसा लगता है कि स्प्रिंग फ्रेमवर्क का उपयोग करके कार्य को शेड्यूल करने का यह एक और तरीका है।स्प्रिंग शेड्यूलिंग: @ शेड्यूल्ड बनाम क्वार्ट्ज

  1. @Scheduled
  2. वाया क्वार्ट्ज
  3. वाया JDK टाइमर

मैं JDK टाइमर में कोई दिलचस्पी नहीं: डॉक्स के आधार पर, स्प्रिंग समय निर्धारण के तीन तरीका प्रदान करता है। मुझे क्वार्ट्ज पर @ शेड्यूल्ड क्यों चुनना चाहिए? (जब मैं क्वार्ट्ज का उल्लेख करता हूं तो मेरा मतलब क्वार्ट्ज के लिए वसंत के बीन रैपर का उपयोग करना है)।

मान लें कि मेरा उपयोग मामला इतना जटिल है कि मैं निर्दिष्ट अंतराल पर डेटा आयात और निर्यात करने के लिए किसी तृतीय-पक्ष वेब सेवा से संचार कर रहा हूं।

उत्तर

28

क्वार्ट्ज लगातार, लेनदेन और वितरित नौकरियों के समर्थन सहित स्प्रिंग के शेड्यूलर में निर्मित परिमाण की तुलना में अधिक जटिलता का क्रम है। यह एक सूअर का थोड़ा सा है, हालांकि, वसंत के एपीआई समर्थन के साथ भी।

आप सभी की जरूरत के तरीकों एक सेम पर हर एक्स सेकंड एक क्रोन शेड्यूल पर तो अमल करने के लिए, या, @Scheduled (या वसंत के <task> config schema में विभिन्न विकल्पों) है, तो शायद काफी

+7

"यह [क्वार्ट्ज] एक सुअर का थोड़ा सा है" - यह 2 साल बाद है और मैं @chris के समान तुलना कर रहा हूं। क्या क्वार्ट्ज अभी भी वसंत के माध्यम से उपयोग करना मुश्किल है? – Edward

+5

क्या @ अनुसूचित समर्थन CLUSTER है? यदि ऐसा है तो मैं इसे कैसे प्राप्त कर सकता हूं? –

+1

नहीं, @ शेड्यूल्ड क्लस्टर या बहु नोड वातावरण का समर्थन नहीं करता है, जो कि इसकी एकमात्र बड़ी सीमा है और मुख्य कारण अभी भी बहुत से लोग क्वार्ट्ज का उपयोग करते हैं। – BrianC

1

मैं अपने ही राज्य के लिए है स्प्रिंग एप्लिकेशन में शेड्यूलिंग कार्यान्वयन के रूप में @Scheduled बनाम Quartz के उपयोग के बारे में अनुभव।

  • अंतिम उपयोगकर्ता को बचाने के लिए क्षमता और अनुसूची (निष्पादन समय को परिभाषित) अपने स्वयं के कार्यों
  • सर्वर डाउनटाइम के दौरान
  • शेड्यूल किए गए कार्यों नौकरियों कतार में शामिल करना ज़रूरी नहीं चाहिए होना चाहिए:

    निर्धारण नौकरियों निम्न आवश्यकताओं था

इसलिए, हमें डेटाबेस में नौकरियों की दृढ़ता का समर्थन करने के लिए क्वार्ट्ज कार्यान्वयन (संस्करण 2.2.3) का उपयोग करने और उपयोग करने की आवश्यकता है। कुछ बुनियादी निष्कर्ष निम्नलिखित हैं:

  • स्प्रिंग 4 एमवीसी अनुप्रयोग के साथ एकीकरण quartz.properties फ़ाइल का उपयोग करना मुश्किल नहीं है।
  • हमारे पास मुख्य डेटाबेस से नौकरियों को संग्रहीत करने के लिए दूसरा डेटाबेस चुनने की क्षमता थी।
  • सर्वर डाउनटाइम के दौरान निर्धारित जॉब्स सर्वर के आने तक चलने लगते हैं।
  • एक बोनस के रूप में हम कस्टम डेटाबेस JobListener और TriggerListener का उपयोग कर उपयोगकर्ता परिभाषित निर्धारित नौकरियों के बारे में कुछ उपयोगी (और अधिक उपयोगकर्ता उन्मुख) जानकारी को बनाए रखने में कामयाब रहे।
  • क्वार्ट्ज अधिक जटिल शेड्यूलिंग आवश्यकताओं वाले अनुप्रयोगों में एक बहुत उपयोगी लाइब्रेरी है।
संबंधित मुद्दे