मेरे पास नौकरी निर्धारित करने के लिए क्वार्ट्ज शेड्यूलर का उपयोग कर एक आवेदन है। एप्लिकेशन वर्तमान में क्वार्ट्ज संस्करण 1.6.2 चला रहा है। मेरा जॉबस्टोर org.quartz.impl.jdbcjobstore.JobStoreTX है जो ओरेकल डेटाबेस का समर्थन करता है। क्लस्टरिंग चालू है, लेकिन डेटाबेस का उपयोग कर केवल एक शेड्यूलर है।क्या मैं ट्रिगर किए गए क्रम में क्वार्ट्ज नौकरियों की आग का इंतजार कर सकता हूं?
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
मेरे नौकरियों लंबी चलने वाली हैं, तो यह ट्रिगर नए रोजगार आग चल 5 नौकरियों (अधिकतम मेरी thead पूल द्वारा अनुमति) के लिए काफी आम है: मेरे क्वार्ट्ज ThreadPool इस प्रकार किया गया है। नव शुरू हो नौकरियों मिसफायर और मैं निम्नलिखित जैसे संदेश लॉग ऑन देखें:
2011-05-20 04:09:30,097 INFO [QuartzScheduler_scheduler-servername-111305822374881_MisfireHandler] o.q.p.h.LoggingTriggerHistoryPlugin - Trigger DEFAULT.JobName1 misfired job DEFAULT.DEFAULT at: 04:09:30 05/20/2011. Should have fired at: 04:08:29 05/20/2011
2011-05-20 04:09:30,120 INFO [QuartzScheduler_scheduler-servername-111305822374881_MisfireHandler] o.q.p.h.LoggingTriggerHistoryPlugin - Trigger DEFAULT.JobName1 misfired job DEFAULT.DEFAULT at: 04:09:30 05/20/2011. Should have fired at: 04:09:30 05/20/2011
2011-05-20 04:09:30,125 INFO [QuartzScheduler_scheduler-servername-111305822374881_MisfireHandler] o.q.p.h.LoggingTriggerHistoryPlugin - Trigger DEFAULT.JobName2 misfired job DEFAULT.DEFAULT at: 04:09:30 05/20/2011. Should have fired at: 04:08:30 05/20/2011
2011-05-20 04:09:30,138 INFO [QuartzScheduler_scheduler-servername-111305822374881_MisfireHandler] o.q.p.h.LoggingTriggerHistoryPlugin - Trigger DEFAULT.JobName2 misfired job DEFAULT.DEFAULT at: 04:09:30 05/20/2011. Should have fired at: 04:09:30 05/20/2011
2011-05-20 04:11:29,998 INFO [QuartzScheduler_scheduler-servername-111305822376676_MisfireHandler] o.q.impl.jdbcjobstore.JobStoreTX - Handling 2 trigger(s) that missed their scheduled fire-time.
एक बार एक चल रहा है काम खत्म, misfired नौकरियों में से एक को उठाया जाएगा और सामान्य रूप से चलाते हैं। हालांकि, क्वार्ट्ज यादृच्छिक रूप से एक मिस्फ़र्ड नौकरी लेने लगता है, इस बात के संबंध में कि नौकरियों को मूल रूप से निष्पादित करने के लिए निर्धारित किया गया था। आदर्श रूप से, मैं उन्हें अपने मूल अग्नि काल के आधार पर चलाने के क्रम में उठाया जाना चाहता हूं।
क्या क्वार्ट्ज थ्रेडपूल में एक बार स्थानांतरित होने के बाद मेरी प्रतीक्षा (मिस्फार्ड) नौकरियों को निकाला जा सकता है ताकि वे ट्रिगर हो जाएं?
मैं वास्तव में इसका परीक्षण नहीं कर सकता क्योंकि मुझे एक नया काम मिला है, वर्षों में क्वार्ट्ज का उपयोग नहीं किया है, और यह देखने के लिए कि यह काम करता है या नहीं, परीक्षण परियोजना स्थापित करने के लिए परेशान नहीं किया जा सकता है। हालांकि, मुझे प्रभावित है कि आपने 5 साल के पुराने प्रश्न का उत्तर देने के लिए परेशान किया है, और आपका उत्तर उपयोगी लगता है, इसलिए मैं आगे बढ़ने वाला हूं और इसे हल करने के रूप में चिह्नित करता हूं :) –
मुझे एक समान समस्या थी इसलिए खोज रहा था स्टैक ओवरफ़्लो। अंत में मैंने कोड के माध्यम से खोद लिया और खुद को समझ लिया लेकिन सोचा कि अगर मैं भविष्य में किसी और के जवाब की तलाश कर रहा हूं तो मैं इसे यहां छोड़ दूंगा। – samblake
@ जोनक्वार्फोथ अंत में आपके लिए क्या काम करता है? मैं हजारों नौकरी का समय निर्धारित कर रहा हूं और नौकरी लंबे समय तक चल रही है क्योंकि मुझे स्थान से दूसरे स्थान पर ब्लॉब माइग्रेट करने की आवश्यकता है और वे ब्लब्स 100 जीबी जितना बड़ा हो सकते हैं। मैं क्वार्ट्ज क्लस्टरिंग का उपयोग करने की योजना बना रहा हूं ताकि जब मास्टर नौकरी को शेड्यूल कर लेता है, दास उन नौकरियों पर काम करते रहेंगे और मुझे वास्तव में मिस आग की परवाह नहीं है क्योंकि मुझे अंत में दासों में से एक द्वारा उठाए गए नौकरी की परवाह है । शायद मैं एक हास्यास्पद बड़े मिस्फीयर दहलीज मूल्य निर्धारित कर सकते हैं। कृपया मुझे बताएं कि आप इसके बारे में क्या सोचते हैं। धन्यवाद। – Coder