首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季调度器在DST期间没有运行

春季调度器在DST期间没有运行
EN

Stack Overflow用户
提问于 2019-11-12 03:24:34
回答 1查看 1.2K关注 0票数 1

在我们的Java应用程序中,我们有Spring调度程序,配置如下所示:

代码语言:javascript
复制
<task:scheduled-tasks>
        <task:scheduled ref="myHealthCheck" method="getStatus" cron="0 0/5 * * * *"/>
</task:scheduled-tasks>

在11月3日DST结束时,调度程序(每5分钟运行一次)没有运行一小时。在DST开始和结束期间,有人能帮助处理这个问题吗?

谢陕

EN

回答 1

Stack Overflow用户

发布于 2019-11-12 08:12:30

这可能与时区配置有关。主机的默认时区是什么?试着运行System.out.println(TimeZone.getDefault())来检查。

如果默认时区不支持DST (例如UTC),则可以通过传递系统属性为整个JVM设置正确的时区:

代码语言:javascript
复制
-Duser.timezone=Europe/Kiev

或者,您可以直接为计划的任务指定时区。

不幸的是,Spring没有定义时区(http://www.springframework.org/schema/task/spring-task-4.3.xsd)的属性。

但您可以使用注释。从Spring 4开始,@Scheduled注释具有一个新的zone属性(https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#scheduling-annotation-support-scheduled):

还可以使用zone属性指定解析cron表达式的时区。

代码语言:javascript
复制
@Scheduled(cron="*/5 * * * * MON-FRI", zone="Europe/Kiev")
public void doSomething() {
    // something that should execute on weekdays only
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58811575

复制
相关文章

相似问题

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