2013-10-11 7 views
5

उदाहरण के लिए, मैं प्रत्येक दिन 12 बजे "हैलो वर्ल्ड" प्रिंट करने के लिए जावा प्रोग्राम लिखना चाहता हूं, मैं इसे प्राप्त करने के लिए क्वार्ट्ज शेड्यूलर का उपयोग कैसे कर सकता हूं?जावा क्वार्ट्ज शेड्यूलर विशिष्ट समय पर चल रहा है

Trigger trigger = TriggerUtils.makeDailyTrigger(0, 0); 
trigger.setName("trigger1"); 
trigger.setGroup("group1"); 

इस तरह? मुझे "हैलो वर्ल्ड" विधि कहां रखनी चाहिए?

उत्तर

6

आप काम के निष्पादन के शेड्यूल करने के लिए एक अभिव्यक्ति इस्तेमाल कर सकते हैं। उदाहरण:

public static class HelloJob implements Job { 
    @Override 
    public void execute(JobExecutionContext ctx) throws JobExecutionException { 
     System.out.println("Hello World"); 
    } 
} 

public static void main(String[] args) throws SchedulerException { 
    String exp = "0 0 0 1/1 * ? *"; 

    SchedulerFactory factory = new StdSchedulerFactory(); 
    Scheduler scheduler = factory.getScheduler(); 
    scheduler.start(); 
    JobDetail job = JobBuilder.newJob(HelloJob.class).build(); 
    Trigger trigger = TriggerBuilder.newTrigger() 
            .startNow() 
            .withSchedule(
             CronScheduleBuilder.cronSchedule(exp)) 
            .build(); 
    scheduler.scheduleJob(job, trigger); 
} 

एक और अभिव्यक्ति बनाने के लिए http://www.cronmaker.com/ देखें। जैसे उत्पादन देखने के लिए हर मिनट 0 0/1 * 1/1 * ? *Cron Expressions भी देखें।

+2

एक क्रॉन अभिव्यक्ति प्रदान करने से भी सरल है, तो आप उपयोग कर सकते हैं के लिए कक्षा बनाएं कार्य

import org.apache.log4j.Logger; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyJob implements Job { private Logger log = Logger.getLogger(MyJob.class); @Override public void execute(JobExecutionContext context) throws JobExecutionException { log.debug("Hi...."); System.out.println("Corn Executing....."); } } 
  • शेड्यूल करना चाहते हैं [CronScheduleBuilder # dailyAtHourAndMinute (int, int)] (http://quartz-scheduler.org/api/2.0.0/org/quartz/CronScheduleBuilder.html#dailyAtHourAndMinute%28int,%20int%29) विधि।'CronScheduleBuilder.cronSchedule (exp)' को 'CronScheduleBuilder.dailyAtHourAndMinute (0, 0)' द्वारा बस प्रतिस्थापित करें। दरअसल, यह समकक्ष क्रॉन अभिव्यक्ति के लिए घंटे और मिनट का अनुवाद करेगा। – ssssteffff

  • +0

    आप सही हैं। यह आसान होगा, हालांकि कम विन्यास योग्य। –

    +0

    मेरी विधि कैसे जोड़ें? कक्षा नहीं – marlonpya

    0

    आपको नौकरी इंटरफ़ेस को लागू करने और निष्पादन विधि के कार्यान्वयन को प्रदान करके अपना कस्टम जॉब बनाना होगा। निष्पादन विधि में आप "हैलो वर्ल्ड" प्रिंट कर सकते हैं। तो फिर तुम इस

    scheduler.scheduleJob(job, trigger); 
    

    की तरह अपने काम निर्धारित कर सकते हैं कदम विवरण द्वारा कदम के लिए इस लिंक का संदर्भ लें: Quartz tutorial

    0

    आप इसके लिए क्रॉन अभिव्यक्ति बना सकते हैं। क्वार्ट्ज नौकरी करने की आप निम्नलिखित वस्तुओं

    1. नौकरी की आवश्यकता है
    2. टास्क जो
    3. अंत में एक ट्रिगर बनाएं और ट्रिगर
    4. की

    ट्रिगर करने के लिए एक नौकरी सहयोगी एक नौकरी के लिए संबद्ध किया जाएगा दो प्रकार

    सरल ट्रिगर, जहां आप नौकरी को नियंत्रित कर सकते हैं, आप हर मिनट या 10 मिनट और इतने पर चल सकते हैं। आप अतिरिक्त पैरामीटर

    initial delay - to kick off 
    
    repeatcount - no of times the job should be executes, if -1 then job will be executed infinitely 
    

    अपने मामले आप के बाद से आप 12 बजे हर दिन चलाना चाहते हैं क्रॉन से चलाता है का उपयोग कर सकते हो सकता है।

    लिंक

    http://www.mkyong.com/spring/spring-quartz-scheduler-example/

    नीचे और क्वार्ट्ज क्रॉन अभिव्यक्ति के बारे में अधिक जानकारी के लिए और इस पर नमूना कार्यक्रम देखने के लिए, क्वार्ट्ज प्रलेखन

    http://quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

    1
    1. डाउनलोड क्वार्ट्ज जार में डाल देखना lib फ़ोल्डर निर्माण परियोजना
    2. बनाएं कक्षा (नौकरी) जिसमें से आप तय समय अपने कार्य

      import org.quartz.JobBuilder; 
      import org.quartz.JobDetail; 
      import org.quartz.Scheduler; 
      import org.quartz.SchedulerException; 
      import org.quartz.SchedulerFactory; 
      import org.quartz.SimpleScheduleBuilder; 
      import org.quartz.Trigger; 
      import org.quartz.TriggerBuilder; 
      import org.quartz.impl.StdSchedulerFactory; 
      
      public class JobScheduler { 
      
          public static void main(String[] args) { 
           // TODO Auto-generated method stub 
           try { 
            JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("myjob").build(); 
      
            Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(30).repeatForever()).build(); 
      
            SchedulerFactory schFactory = new StdSchedulerFactory(); 
            Scheduler scheduler = schFactory.getScheduler(); 
            scheduler.start(); 
            scheduler.scheduleJob(job, trigger); 
      
           }catch (SchedulerException e) { 
      
            e.printStackTrace(); 
           } 
          } 
      } 
      
    संबंधित मुद्दे