मैं क्वार्ट्ज क्रोनट्रिगर सुविधा का उपयोग कर रहा हूं ताकि यह निर्धारित किया जा सके कि एक विशिष्ट नौकरी कब चलनी चाहिए। मैं वास्तव में नौकरी निर्धारित करने के लिए क्वार्ट्ज का उपयोग नहीं कर रहा हूं।क्वार्ट्ज क्रोनट्रिगर - अगली आग का समय
क्रोनट्रिगर में एक विधि है जिसे GetFireTimeAfter (दिनांक) कहा जाता है जो अगली बार दी गई तारीख के बाद नौकरी आग लग जाएगी। यह अच्छी तरह से काम करता है जब आपूर्ति की तारीख अब या भविष्य में है। लेकिन अगर तारीख अतीत में है तो यह काम नहीं कर रहा है।
Date currTime = new Date();
CronTrigger tr = new CronTrigger();
tr.setCronExpression("0 0 23 3,18 * ? *");
Date nextFireAt = tr.getFireTimeAfter(currTime);
System.out.println("Reference time: " + currTime);
System.out.println("Next fire after reference time: " + nextFireAt);
कौन सा 3 और हर महीने की 18 पर 23:00 पर आग एक क्रोन शेड्यूल है। उदाहरण के लिए, अगर मैं यह आज (11 अगस्त) किया था, मैं देख रहा हूँ:
Reference time: Thu Aug 11 10:04:25 MDT 2011
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
लेकिन अगर मैं अतीत के संदर्भ तिथि निर्धारित, यह मेरे लिए एक ही अगले आग समय देता है।
Reference time: Wed Dec 31 17:00:00 MST 1969
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
मैं उम्मीद कर रहा था उत्पादन होने के लिए:
Reference time: Wed Dec 31 17:00:00 MST 1969
Next fire after reference time: Wed Aug 3 23:00:00 MDT 2011
विधि सिर्फ इतना है कि जिस तरह से काम करने के लिए या मैं कुछ गलत कर रहा हूँ इरादा नहीं है?
धन्यवाद!
अगस्त 3 अतीत में है। – Kal
@ काल - हाँ मुझे पता है। मैं यह पता लगाने की कोशिश कर रहा हूं कि दिए गए दिनांक के बाद ट्रिगर कब निकाल दिया जाएगा, भले ही यह अतीत में हो। – cambo