2012-12-13 27 views
7

मुझे स्प्रिंग टाइमर निष्पादन को रद्द करने की आवश्यकता है या कम से कम कुछ स्थितियों के आधार पर निष्पादन आवृत्ति को बदलने की आवश्यकता है। org.springframework.scheduling.quartz.SimpleTriggerBean और org.springframework.scheduling.timer.ScheduledTimerTask दोनों का उपयोग कर रहा था। इसे कैसे करना है इसका तरीका नहीं मिल रहा है।स्प्रिंग टाइमर निष्पादन को कैसे रद्द करें

उत्तर

0

यह अब तक का सबसे अच्छा समाधान नहीं है, लेकिन यदि आप किसी और चीज के साथ नहीं आ सकते हैं तो आप हमेशा एक बुलियन का उपयोग कर सकते हैं जिसे हर बार ईवेंट निकाल दिया जाता है और यदि बूलियन गलत होता है तो रन विधि timertask तुरंत समाप्त करना चाहिए।

+0

यही वह है जो मैंने वास्तव में किया था। यह दृष्टिकोण निश्चित रूप से बेहतर नहीं है क्योंकि कुछ शर्त पूरी होने पर मैं फिर से कार्य निष्पादित नहीं करना चाहता हूं। – BigWonder

14

नोट: यह वसंत 3.0+

  1. पढ़ें Spring documentation on scheduling tasks के लिए है

  2. इस तरह के एक TimerManagerTaskScheduler या ThreadPoolTaskScheduler के रूप में, एक TaskScheduler सेवा का उपयोग करें।

  3. अनुसूची कुछ TaskScheduler.schedule*() विधि बुला और लौटने ScheduledFuture की दुकान से अपने कार्य।

  4. जब आप निष्पादन रद्द करना चाहते हैं, तो ScheduledFuture.cancel() का आह्वान करें। इससे आपके कार्य के आगे के आमंत्रण बंद हो जाएंगे। इस समय, यदि आप विभिन्न पैरामीटर के साथ अपने कार्य के लिए TaskScheduler.schedule*() पर कॉल करके चाहते हैं तो आप पुन: निर्धारित कर सकते हैं।

+0

मेरे सेम वसंत xml फ़ाइल में प्रावधान हैं। मैं वहां से कार्यक्षेत्र का उदाहरण कैसे प्राप्त करूं? क्या आप कह रहे हैं कि मुझे अपने जावा कोड में यह सब प्रावधान करने की ज़रूरत है? – BigWonder

+0

बस '' तत्व का उपयोग करके टास्कशेड्यूलर को तुरंत चालू करें और जहां भी आप इसका उपयोग करना चाहते हैं उसे इंजेक्ट करें – gpeche

+0

प्रस्तावित समाधान कार्यान्वयन: https://stackoverflow.com/questions/39152599/ –

0

समाधान org.springframework.scheduling.timer.TimerFactoryBean को एक आईडी असाइन करने के लिए और फिर अनुप्रयोग से सेम को पुनः प्राप्त, घड़ी के लिए यह डाली और उस वस्तु पर विधि रद्द कहते हैं।

+0

' ' फिर आप मेरा शेड्यूलर और 'रद्द()' प्राप्त कर सकते हैं। – Andre

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