2016-05-30 2 views
1

Использование таймера и таймера.Java TimerTask - Запуск задачи в XX: MM часы каждый день

Невозможно понять, почему эта конфигурация запускает задачу сразу при развертывании (используя это в веб-приложении Spring). Он должен начинаться с today.getTime, а затем должен повторяться каждый день.

Calendar today = Calendar.getInstance(); 
    today.set(Calendar.HOUR_OF_DAY, 3); 
    today.set(Calendar.MINUTE, 0); 
    today.set(Calendar.SECOND, 0); 

    MyTask task = new MyTask(); 
    Timer timerJob = new Timer(); 
    timerJob.schedule(task, today.getTime(), 
      TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS)); 

ответ

1

Я думаю, было бы лучше использовать CronTrigger или триггер с 24 часов интервал повтора.

Пример CronTrigger:

public class CronTriggerRunner { 

public static void main(String args[]) throws SchedulerException, Exception { 

    SchedulerFactory schedulerFactory = new StdSchedulerFactory(); 

    Scheduler scheduler = schedulerFactory.getScheduler(); 

    JobDetail job = JobBuilder.newJob(ClassToRun.class).withIdentity("jobName", "group").build(); 
    // Starting CronTrigger 
    String exp = "0 0 9 * * ?"; //trigger format, everyday at 9:00 am 

    Trigger trigger = TriggerBuilder.newTrigger() 
           .startNow() 
           .withSchedule(
            CronScheduleBuilder.cronSchedule(exp)) 
           .build(); 

    // Planning job detail 
    scheduler.scheduleJob(job, trigger); 

    // starting scheduler 
    scheduler.start(); 
} 
} 

ClassToRun.java

public class ClassToRun implements Job { 

@Override 
public void execute(JobExecutionContext context) throws JobExecutionException { 
    try{ 
     //doSomething 
    } 
    catch(Exception e){ 
     e.printStackTrace(System.out); 
    } 
    } 
} 

Каждого дня в 9:00 утре, public void execute() функции йоЗотеЬЫпд: D

Надеется, что это поможет. Пожалуйста, дайте мне знать.

EDIT: Вам необходимо загрузить и добавить 2 файла jar. 1) кварц-2.2.1.jar 2) slf4j-api-1.6.6.jar

+0

Мне нужно будет добавить зависимость от кварца? – abipc

+0

@abipc да, я забыл об этом. Я использовал 2 библиотеки. Вот они: 1) кварц-2.2.1.jar 2) slf4j-api-1.6.6.jar –

Смежные вопросы