2010-12-29 3 views
1

Я изучаю каркас планировщика кварца и в качестве базы, которую я начал с «Hello World», которая печатает на регулярных интервалах.Проблема при выполнении простого планировщика кварца

Это мой SampleScheduler

public class SampleScheduler { 
public static void main(String arfs[]) { 
    try { 
     Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 
     scheduler.start(); 
     System.out.println("Scheduler Started..."); 

     JobDetail job = new JobDetail("job1","group1",SampleJobInter.class); 
     Trigger trigger = new SimpleTrigger("trigger1",Scheduler.DEFAULT_GROUP,new Date(),null,SimpleTrigger.REPEAT_INDEFINITELY,60L*1000L); 
     scheduler.scheduleJob(job, trigger); 
     scheduler.shutdown(); 
     System.out.println("Scheduler Stopped.."); 
    } catch(SchedulerException e) { 

    } 

} 
} 

Вот мой SampleJobInter.class

public class SampleJobInter implements Job { 

SampleJobInter(){} 
@Override 
public void execute(JobExecutionContext arg0) throws JobExecutionException { 
    // TODO Auto-generated method stub 
    System.out.println("Hello World at "+new Date()); 
} 

} 

Выход я получаю

Scheduler Started... 
Scheduler Stopped.. 

Я не получаю желаемый результат. Я запускаю его в консоли. Нужно ли мне делать какие-либо конфигурации или что ?. Пожалуйста, помогите мне в этом

ответ

1

просто положить scheduler.start() после того, как вы запланировали работу бежать - scheduler.scheduleJob...

UPDATE: Я исправлюсь по org.life.java. Порядок выступлений не будет иметь большого значения. Источником ваших проблем является вызов shutdown(). Контракт планировщика [javadoc] должен продолжать работать, пока на нем не выдается явная команда shutdown. если вы удалите эту строку из своего кода, она отлично работает.

+0

Я сделал то же самое, что кажется. Не могли бы вы быть подробно. – i2ijeya

+0

в фрагменте кода, я не думаю, что вы сделали то же самое. у вас есть инструкция 'scheduler.start()' сразу после получения экземпляра 'scheduler', тогда как вы планируете задание' scheduler.scheduleJob (job, trigger) 'впоследствии. – anirvan

+0

его не проблема –

1

Я создал его с нуля, и он хорошо работает. !!
Я бы предложил вам сравнить свой код с этим а также исключение журнала в catch, чтобы у вас была хорошая идея.

JobRunner

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package org.life.java.so.questions; 

/** 
* 
* @author Jigar 
*/ 
import java.util.Date; 
import org.quartz.JobDetail; 
import org.quartz.Scheduler; 
import org.quartz.SchedulerFactory; 
import org.quartz.SimpleTrigger; 
import org.quartz.impl.StdSchedulerFactory; 



public class HelloSchedule { 

    public HelloSchedule() throws Exception { 
     SchedulerFactory sf = new StdSchedulerFactory(); 
     Scheduler sched = sf.getScheduler(); 
     sched.start(); 
     JobDetail jd = new JobDetail("myjob", sched.DEFAULT_GROUP, SampleJobInter.class); 
     SimpleTrigger st = new SimpleTrigger("mytrigger", sched.DEFAULT_GROUP, new Date(), 
       null, SimpleTrigger.REPEAT_INDEFINITELY, 100L); 
     sched.scheduleJob(jd, st); 
    } 

    public static void main(String args[]) { 
     try { 
      new HelloSchedule(); 
     } catch (Exception e) { 
     } 
    } 
} 

Работа

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package org.life.java.so.questions; 

import java.util.Date; 
import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 

/** 
* 
* @author Jigar 
*/ 
public class SampleJobInter implements Job { 

    public SampleJobInter() { 
    } 

    public void execute(JobExecutionContext arg0) throws JobExecutionException { 
     System.out.println("Hello World at " + new Date()); 
    } 
} 
+0

+1. Благодарю. Сейчас он работает хорошо. Я отлаживал свой предыдущий код и никаких исключений не произошло. Я не знаю, как он работает хорошо. Пожалуйста, дайте понять, что изменило ситуацию. – i2ijeya

+0

Попытайтесь выяснить, какая разница проверяет импорт и другие вещи –

+0

это метод 'shutdown'. если вы [i2ijeya] положите его, ваш код не будет работать; если вы этого не сделаете, он будет работать. – anirvan