多个时区中的 Spring @Scheduled 任务

我有一个在美国(所有时区)运营的客户。我需要在每个时区的凌晨 2 点运行一个任务。此任务需要时区作为输入以获取仅与该区域相关的记录。

@Scheduled 注释具有timezone价值,一次在一个时区起作用。

我不想通过为每个区域设置 4 个单独的任务来复制代码。


潇湘沐
浏览 226回答 3
3回答

RISEBY

使用带有注释@Scheduled 的区域属性,(4.0 版添加)见下面的示例@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")

噜噜哒

一个愚蠢但可行的解决方案是将逻辑的内容放在另一个函数中,并在具有不同日程设置的 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) {}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java