相关疑难解决方法(0)

在Spring中启动时执行方法

当应用程序第一次启动时,是否有任何Spring 3功能可以执行某些方法?我知道我可以设置一个带@Scheduled注释的方法,它只是在启动后执行,但它会定期执行.

java spring

168
推荐指数
7
解决办法
22万
查看次数

为Spring @Scheduled提供时区?

如何为基于Spring的@Scheduled cron作业配置时区?

背景:

我有一份工作,每天执行一次,比如说下午2点,使用Spring的@Scheduled注释:

@Scheduled(cron = "0 0 14 * * *")
public void execute() {
    // do scheduled job
}
Run Code Online (Sandbox Code Playgroud)

问题是不同服务器之间的下午2点不同,因为Spring在TimeZone.getDefault() 内部使用.而且,JavaDocTimeZone.getDefault() 状态表明:

获取此主机的默认TimeZone.默认TimeZone的来源可能因实施而异.

换句话说,不确定时区.它可能取决于JVM实现,服务器时区配置,服务器位置和/或其他未知因素.因此,cron作业在不同服务器上的不同时间触发,除非有办法明确设置应该使用哪个时区?

我使用的是Spring 3.2.2.


更新

截至春季4,Spring Jira问题SPR-10456已经解决.因此,@Scheduled注释具有新的区域属性,正是出于此目的.

java cron timezone spring scheduling

41
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×2

spring ×2

cron ×1

scheduling ×1

timezone ×1