我有一个在美国(所有时区)运营的客户。我需要在每个时区的凌晨 2 点运行一个任务。此任务需要时区作为输入以获取仅与该区域相关的记录。@Scheduled 注释具有timezone价值,一次在一个时区起作用。我不想通过为每个区域设置 4 个单独的任务来复制代码。
3 回答
RISEBY
TA贡献1856条经验 获得超5个赞
使用带有注释@Scheduled 的区域属性,(4.0 版添加)见下面的示例
@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")
噜噜哒
TA贡献1784条经验 获得超7个赞
一个愚蠢但可行的解决方案是将逻辑的内容放在另一个函数中,并在具有不同日程设置的 2 个不同函数中调用日程
@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")
public void scheduleCetTask() {
// code to get parameters
commonTask(parameters);
}
@Scheduled(cron = "0 10 19 * * FRI", zone = "ABC")
public void scheduleAbcTask() {
// code to get parameters
commonTask(parameters);
}
public void commonTask(parameters) {
}
添加回答
举报
0/150
提交
取消