public void triggerMonthlyJob() throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(MonthlyReportsCronTriggerWorkItem.class).build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("CronTrigger for sending the digital and commercial delivery reports monthly")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 7 1 * ?"))
.build();
Scheduler scheduler = null;
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
} catch (SchedulerException e) {
e.printStackTrace();
}
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
}
Это мое задание cron, которое должно выполняться согласно указанному выражению cron, т.е. 1-го числа каждого месяца в 7 часов утра
public class MonthlyReportsCronTriggerWorkItem implements Job{
MonthlyDeliveryReportsHelper monthlyDeliveryReportsHelper = new MonthlyDeliveryReportsHelperImpl();
private static Logger LOG = Logger.getLogger(MonthlyReportsCronTriggerWorkItem.class);
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
Date date = new Date();
monthlyDeliveryReportsHelper.sendCommercialDeliveryReport();
monthlyDeliveryReportsHelper.sendDigitalDeliveryReport();
LOG.info("Monthly reports sent on: "+date);
}
Это класс, вызывающий требуемые методы. Я сомневаюсь, что весь этот код должен работать на сервере, который находится в другом часовом поясе. Так будет ли это задание выполняться в соответствии с часовым поясом сервера или моим часовым поясом? Он должен быть запущен в Гринвиче и разработан в IST.