首页 > 解决方案 > @Schedule Cron 表达式根据属性文件中的夏令时调整

问题描述

我想安排两个任务,它们将在每天凌晨 1.01 CST/CEST 运行(因为服务器在 BST --> 00:01)和 & 17.30 CST/CEST(所以 BST --> 16.30)。

由于夏令时的变化,我必须手动调整。我希望它自动调整。

那么我该如何在 cron 作业中处理它

第一项任务

@Scheduled(cron = "${job.schedule}") // 00:01
    public void startSchedulePullData() throws Exception {
        LOGGER.info("Fetching all schedules");
        List<FileForTransfer> dataPullSchedulesList = dbUtils.findPullDataScheduled();

第二个任务

@Scheduled(cron = "${job.schedule.fileransfer}") // evening 5:30 PM CET
    public void startScheduleFileTransfer() throws Exception {
        LOGGER.info("Fetching all schedules");
        List<FileForTransfer> fileTransferScheduleList = dbUtils.findFileTransferScheduled(); 

在属性文件中

job.schedule=0 01 00 * * *
job.schedule.fileransfer = 0 30 16 * * *

标签: javaspringspring-scheduled

解决方案


在夏令时更改期间,应该在运行代码的服务器/机器上更新时间,它会自动反映在您的代码中,无需任何手动调整。

如果您觉得这不能回答您的问题,请详细说明具体情况以及您必须手动进行的调整。


推荐阅读