जावा टास्क शेड्यूलर: Quartz Scheduler – संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा टास्क शेड्यूलर: Quartz Scheduler

\n\n

जावा में आधुनिक डेवलपमेंट में अक्सर शेड्यूल के अनुसार कोड निष्पादित करने की आवश्यकता होती है: ईमेल न्यूज़लेटर भेजना, कैश साफ़ करना, रिपोर्ट जनरेट करना या डेटा सिंक्रोनाइज़ करना। इन उद्देश्यों के लिए एक शक्तिशाली लाइब्रेरी Quartz Scheduler मौजूद है — जो जावा इकोसिस्टम में टास्क शेड्यूलिंग का डी-फैक्टो मानक है।

\n\n

Quartz Scheduler एक open-source फ्रेमवर्क है जो आपको लचीली ट्रिगर प्रणाली के साथ टास्क (Jobs) बनाने, शेड्यूल करने और प्रबंधित करने की अनुमति देता है। यह सरल विलंब से लेकर जटिल cron-शेड्यूल तक का समर्थन करता है, विफलताओं के प्रति लचीला है, और इसे Spring Boot, Jakarta EE और अन्य प्लेटफार्मों के साथ एकीकृत किया जा सकता है।

\n\n

मुख्य विशेषताएं

\n
    \n
  • लचीला शेड्यूलिंग — विलंब और पुनरावृत्ति के साथ सरल ट्रिगर (SimpleTrigger) और जटिल शेड्यूल के लिए cron-ट्रिगर (CronTrigger) का समर्थन।
  • \n
  • परसिस्टेंसी — टास्क और ट्रिगर डेटाबेस (JDBC JobStore) में संग्रहीत किए जा सकते हैं, जो एप्लिकेशन के पुनरारंभ के बाद भी निष्पादन सुनिश्चित करता है।
  • \n
  • क्लस्टरिंग — डेटाबेस के माध्यम से समन्वय के साथ शेड्यूलर के कई इंस्टेंस चलाने की क्षमता।
  • \n
  • Listeners — लॉगिंग या अतिरिक्त प्रोसेसिंग के लिए टास्क निष्पादन ईवेंट (JobListener, TriggerListener) को सुनना।
  • \n
  • मॉनिटरिंग — वर्तमान टास्क, उनकी स्थिति और निष्पादन इतिहास देखने के लिए अंतर्निहित API।
  • \n
\n\n

इंस्टॉलेशन और सेटअप

\n

शुरू करने के लिए, अपने pom.xml (Maven) में डिपेंडेंसी जोड़ें:

\n
<dependency>\n    <groupId>org.quartz-scheduler</groupId>\n    <artifactId>quartz</artifactId>\n    <version>2.3.2</version>\n</dependency>
\n

Gradle के लिए:

\n
implementation 'org.quartz-scheduler:quartz:2.3.2'
\n\n

सरल टास्क बनाने का उदाहरण

\n

एक क्लास बनाएं जो Job इंटरफ़ेस को लागू करता है। यही हमारा टास्क है:

\n
import org.quartz.Job;\nimport org.quartz.JobExecutionContext;\nimport org.quartz.JobExecutionException;\nimport java.time.LocalTime;\n\npublic class SimpleJob implements Job {\n    @Override\n    public void execute(JobExecutionContext context) throws JobExecutionException {\n        System.out.println("टास्क निष्पादित हुआ: " + LocalTime.now());\n        // यहाँ आपका बिज़नेस कोड\n    }\n}
\n\n

SimpleTrigger के साथ टास्क शेड्यूल करना

\n

टास्क को 5 सेकंड बाद शुरू करें और हर 10 सेकंड में दोहराएं:

\n
import org.quartz.*;\nimport org.quartz.impl.StdSchedulerFactory;\n\npublic class SimpleSchedulerExample {\n    public static void main(String[] args) throws SchedulerException {\n        // 1. शेड्यूलर बनाएं\n        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();\n\n        // 2. टास्क (JobDetail) परिभाषित करें\n        JobDetail job = JobBuilder.newJob(SimpleJob.class)\n                .withIdentity("myJob", "group1")\n                .build();\n\n        // 3. ट्रिगर बनाएं: 5 सेकंड बाद शुरू, हर 10 सेकंड में दोहराएं\n        Trigger trigger = TriggerBuilder.newTrigger()\n                .withIdentity("myTrigger", "group1")\n                .startAt(DateBuilder.futureDate(5, DateBuilder.IntervalUnit.SECOND))\n                .withSchedule(SimpleScheduleBuilder.simpleSchedule()\n                        .withIntervalInSeconds(10)\n                        .repeatForever())\n                .build();\n\n        // 4. टास्क को ट्रिगर से जोड़ें और शुरू करें\n        scheduler.scheduleJob(job, trigger);\n        scheduler.start();\n    }\n}
\n\n

जटिल शेड्यूल के लिए CronTrigger का उपयोग

\n

Cron-एक्सप्रेशन किसी भी जटिलता का शेड्यूल सेट करने की अनुमति देते हैं। उदाहरण के लिए, हर दिन सुबह 9:30 बजे:

\n
Trigger cronTrigger = TriggerBuilder.newTrigger()\n        .withIdentity("cronTrigger", "group1")\n                    

अनुशंसाएँ