Настройка разных таймингов в работе cron - PullRequest
0 голосов
/ 06 марта 2020
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.

...