2013-09-26 3 views
0

Я хочу запланировать работу cron в соответствии с указанным часовым поясом. Он будет срабатывать нормально в первый раз, но в следующий раз он не будет стрелять в соответствии с указанным часовым поясом, а будет стрелять в соответствии с временем системы. Я использую ежедневное выражение cron. Он будет срабатывать ежедневно в полночь 12:00. Ниже приведен образец кода, который я использую для планирования.Quartz 2.2 TimeZone issue

JobDetail jobDetail = JobBuilder 
.newJob((Class<? extends Job>) Class.forName(cronJobClassName)) 
.withIdentity(JOBDETAIL_PREFIX + scheduleProcess, Scheduler.DEFAULT_GROUP) 
.build(); 

CronTrigger cronTrigger = TriggerBuilder 
.newTrigger() 
.withIdentity(TRIGGER_PREFIX + scheduleProcess, Scheduler.DEFAULT_GROUP) 
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 ? * 1/1").inTimeZone(instanceTimeZone)) 
.build(); 

scheduler.scheduleJob(jobDetail, cronTrigger); 

Заранее спасибо. Все предложения будут полезны.

+0

Вы не можете использовать выражение cron для поля дня недели. Попробуйте «0 0 0 * *?» – darrenmc

+0

Спасибо за ответ. Я также пробовал «0 0 0 * *?» это выражение cron, но все еще проблема, не разрешено. Оно запускается только в первый раз в соответствии с часовым поясом, а затем оно принимает следующий FireTime времени системы. – user2819854

+0

@ user2819854 эй вы получили решение ....... Даже я сталкиваюсь с такой же проблемой .. – Gokul

ответ

1

Это проблема (ошибка) с кварцем 2.2.0.Quartz 2.2.0 является нестабильной версией. Попробуйте перейти на стабильную версию 2.2.1, она доступна или вы можете перейти на Quartz 2.1.7.