2010-09-04 9 views
5

मैं क्वार्ट्ज शेड्यूलर v.1.8.0 का उपयोग कर रहा हूं।क्रॉन अभिव्यक्ति कैसे प्राप्त करें नौकरी का नाम और समूह का नाम दिया जाए?

मैं क्रॉन अभिव्यक्ति कैसे प्राप्त करूं जो नौकरी को सौंपा गया/संलग्न किया गया था और CronTrigger का उपयोग करके निर्धारित किया गया था? मेरे पास इस मामले में नौकरी का नाम और समूह का नाम है। हालांकि कई ट्रिगर एक ही नौकरी को इंगित कर सकते हैं, मेरे मामले में यह केवल एक है।

शेड्यूलर कक्षा, Scheduler.getTriggersOfJob(jobName, groupName) में एक विधि उपलब्ध है, लेकिन यह केवल ट्रिगर सरणी देता है।

उदाहरण cronexpression: 0 /5 10-20 * * ?

नोट: कक्षा CronTriggerउत्प्रेरक

उत्तर

15

आप Scheduler.getTriggerOfJob उपयोग कर सकते हैं प्रदान करता है। यह कक्षा एक ट्रिगर [] में दिए गए नौकरी नाम और समूह नाम के लिए सभी ट्रिगर्स लौटाती है।

फिर, इस सरणी की सामग्री का विश्लेषण करें, परीक्षण करें कि ट्रिगर एक क्रोन ट्रिगर है, और इसे क्रोनट्रिगर उदाहरण प्राप्त करने के लिए डाला गया है। फिर, getCronExpression() विधि को जो कुछ आप ढूंढ रहे हैं उसे वापस करना चाहिए।

यहाँ एक कोड नमूना है:

Trigger[] triggers = // ... (getTriggersOfJob) 
for (Trigger trigger : triggers) { 
    if (trigger instanceof CronTrigger) { 
     CronTrigger cronTrigger = (CronTrigger) trigger; 
     String cronExpr = cronTrigger.getCronExpression(); 
    } 
} 
+0

धन्यवाद, मेरी cronexpression वापस देखने के लिए कर रहा हूँ। बीटीडब्लू, आपके कोड नमूने में एक छोटा सा सुधार: 'क्रॉन ** टी ** रिगर क्रॉन ट्रिगर = (क्रोन ट्रिगर) ट्रिगर;'। – Gnanam

+0

@ ज्ञानम: धन्यवाद, मैंने इसे सही किया :-) –

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