首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Schedule注解具有多个时区

@Schedule注解具有多个时区
EN

Stack Overflow用户
提问于 2020-08-14 01:53:30
回答 1查看 47关注 0票数 0

HiTeam,

我有一个要求,我必须同时运行具有多个时区的计划任务,即晚上9点。我使用了@Schedule注释并添加了repeatable @Schedule annotation.By此单个文件在下午9点在两个时区运行下面是代码。

`@Component公有类logger=LoggerFactory.getLogger(TestSchedular.class);{私有静态最终日志TestSchedular

代码语言:javascript
复制
@Scheduled(cron= "0 0 21 * * ?",zone = "GMT+4")
@Scheduled(cron= "0 0 21 * * ?",zone = "GMT+3")
public void scheduleFixedRateTask() throws Exception {
    
    logger.info("Schedular started..." );
}

}`

但是在函数内部,我需要知道它为哪个时区执行currently.On,最基本的是,我必须做我的processing.But的其余部分,我没有找到任何与此相关的东西。有没有办法找到this.Please让我知道。谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-08-14 03:23:49

没有真正的方法可以正确地访问该区域。

相反,您可以将逻辑移动到接受时区的私有方法中,并使用@Scheduled注释注释两个方法,并将相应的时区传递给该方法:

代码语言:javascript
复制
private static final String GMT_PLUS_3 = "GMT+3";
private static final String GMT_PLUS_4 = "GMT+4";

@Scheduled(..., zone = GMT_PLUS_3)
public void scheduleGmt3() { 
    task(GMT_PLUS_3); 
}

@Scheduled(..., zone = GMT_PLUS_4)
public void scheduleGmt4() { 
    task(GMT_PLUS_4); 
}

private void task(String timeZone) {
    logger.info("Task started for time zone '{}'", timeZone);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63400707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档