提供春季@Scheduled的时区?
如何为基于 Spring 的@Scheduled cron 作业配置时区?
背景:
我有一个每天执行一次的工作,比如下午2点,使用Spring的注释:@Scheduled
@Scheduled(cron = "0 0 14 * * *")
public void execute() {
// do scheduled job
}
问题在于,2 PM在不同的服务器之间有所不同,因为Spring在内部使用。此外,JavaDoc 指出:TimeZone.getDefault()
TimeZone.getDefault()
获取此主机的默认时区。默认时区的来源可能因实现而异。
换句话说,时区不是确定的。它可能取决于JVM实现、服务器时区配置、服务器位置和/或其他未知因素。因此,cron 作业在不同服务器上的不同时间触发,除非有办法显式设置应使用的时区?
我正在使用Spring 3.2.2。
更新
自春季 4 日起,春季 Jira 问题 SPR-10456 已得到解决。因此,注记具有一个新的区域属性,正是出于此目的。@Scheduled