शुरू करने के लिए, मैं इसके लिए जेएसपी का उपयोग नहीं करता। वहां के लिए नहीं है।
जब आप जावा ईई 5 पर हों, तो इसके लिए कंटेनर-प्रदत्त जॉब्सड्यूलिंग एपीआई का उपयोग करें। अधिक जानकारी उस कंटेनर पर निर्भर करती है जिसका आप उपयोग कर रहे हैं। उदाहरण के लिए जेबॉस एएस 5 बॉक्स के बाहर क्वार्ट्ज के साथ जहाजों। या जब आप जेएसपी/सर्वलेट के शीर्ष पर एक ढांचा का उपयोग कर रहे हैं जो Spring जैसे जॉब्सहेड्यूलिंग एपीआई प्रदान करता है, तो आपको इसका उपयोग करना चाहिए।
यदि कोई नहीं है (उदा। आप केवल टॉमकैट 6 का उपयोग कर रहे हैं), या आप कंटेनर और/या फ्रेमवर्क से स्वतंत्र होना चाहते हैं, तो ScheduledExecutorService
के साथ ServletContextListener
बनाएं। this answer में और जानकारी मिल सकती है।
या आप पहले से ही एक जावा ईई 6 कंटेनर जो EJB 3.1 का समर्थन करता है पर हैं (JBoss 6 के रूप में, ग्लासफिश 3, लेकिन इस प्रकार नहीं बिलाव 7), सबसे आसान @Schedule
विधि के साथ एक @Singleton
EJB बनाने के लिए है जब।
@Singleton
public class UpdateSubscriptions {
@Schedule(hour="*/6", minute="0", second="0", persistent=false)
public void run() {
// Do your job here.
}
}
यही है। कोई और विन्यास आवश्यक नहीं है।
अद्यतन: टिप्पणियों के अनुसार, आप बिलाव (? 6 या 7) का उपयोग कर रहे हैं। वेब ऐप्लिकेशन की स्टार्टअप के दौरान एक धागा जो कार्य हर 6 घंटे चलाता है शुरू करने के लिए, उदाहरण के रूप में उपयोग beforelinked answer में उपलब्ध कराई गई और scheduleAtFixedRate()
विधि
scheduler.scheduleAtFixedRate(new UpdateSubscriptions(), 0, 6, TimeUnit.HOURS);
में निम्नलिखित परिवर्तन वर्ग UpdateSubscriptions
Runnable
को लागू करना चाहिए और वास्तविक काम की जरूरत बनाने के run()
विधि में किया जाना चाहिए जो आप @Override
, जैसा कि लिंक किए गए उत्तर में उदाहरण के समान है।
+1 इस से कोई भी जवाब नहीं मिल सकता है। – asgs
मैं केवल टॉमकैट का उपयोग कर रहा हूं। मैंने लिंक किए गए उत्तर को भी देखा। 1. मैं इसे कक्षा में उपयोग करने का इरादा रखता था, जेएसपी का उपयोग नहीं करने के लिए crntlt था। लेकिन, सर्वलेट एक बेहतर तरीका है? 2. अगर मैं इसे एक सर्वलेट में डालता हूं जैसा कि लिंक किए गए उत्तर में दिखाया गया है, तो क्या यह हर 6 घंटे में नया धागा नहीं बनायेगा? – MalTec
यह एक सर्वलेट नहीं है। यह एक श्रोता है। और वेबपैप के जीवनकाल में इसका केवल एक उदाहरण है (वैसे ही वैसे भी सर्वलेट पर लागू होता है)। – BalusC