当前位置: 首页 > 知识库问答 >
问题:

Spring计划批注与区域EST,不工作

暨正真
2023-03-14

我正在尝试创建一个在EST时区运行的调度程序。为此,我在Scheduled方法上添加了@Scheduled注释。方法如下所示。我希望这个方法在周一到周五的美国东部时间早上5:00运行,但它在美国东部时间凌晨3:30(美国东部时间下午6:00)运行。

java prettyprint-override">@Scheduled(cron = "0 0 5 * * MON-FRI", zone = "EST")
public void jobRunDaily() {
  logger.info("jobRunDaily : called");
  this.sendEmailDaily();
}

共有1个答案

姬选
2023-03-14

如文档中所述,zone接受对时区有效的ID。getTimeZone(字符串)

TimeZone留档中,您可以找到以下方法:

时区的ID,可以是缩写,如“PST”,全名,如“America/Los_Angeles”,也可以是自定义ID,如“GMT-8:00”。注意,缩写的支持是针对JDK 1.1的。仅限x兼容性,应使用全名。

这意味着应该使用全名而不是“美国东部时间”的缩写。

 类似资料:
  • 我用Spring Boot构建simpy web api services应用程序,并用Spring Boot中的计划任务创建了一些cron作业服务,但不起作用。我需要在每周的12:00(星期一至星期五)运行此服务。这是一个exmaple sheduling:

  • 我正在调查使用spark作为REST API后端的适用性。其中的一个问题似乎是Spark的FIFO调度方法。这意味着,如果一个大任务正在执行中,那么在那个重任务完成之前,任何小任务都无法完成。根据https://spark.apache.org/docs/latest/job-scheduling.html,一个公平的调度程序应该可以解决这个问题。然而,我没有注意到这改变了什么。我配置的排定程序是

  • 我正在使用@Scheduled annotation运行cron作业。调度工作了一段时间,然后停止工作。我将给出我的代码的简化片段: 这是调度程序: 这是由调度器执行的任务 “开始代理”和“结束代理”的记录次数相同。所以,每一个日程安排都会正确地结束。 “开始任务”和“结束任务”的记录次数相同。所以,毫无疑问,“任务”并不是阻止事情。 但是过了一段时间就停止记录了。有什么问题吗? 这里,TASK_

  • 如何配置基于Spring的@计划cron作业的时区? 背景: 我有一个工作,每天执行一次,比如下午2点,使用Spring的注释: 问题是2PM在不同的服务器之间不同,因为Spring在内部使用。此外,的JavaDoc 获取此主机的默认时区。默认时区的来源可能因实现而异。 换句话说,时区是不确定的。这可能取决于JVM实现、服务器时区配置、服务器位置和/或其他未知因素。因此,cron作业会在不同服务器

  • 问题内容: 我有一种通过以下方式注释的方法: 所以我知道这个注释: 此方法处理对由URL / orders* 表示的资源发出的 GET HTTP请求。 * 此方法调用返回 List 的DAO对象。 其中 Account 代表系统上的用户,并具有代表该用户的某些字段,例如: 我的问题是: 批注 到底如何工作? 它位于返回的对象之前,因此我认为它引用了此List。课程文档指出,此注释可用于: 确保结果

  • 我正在使用Spring框架中的@计划的注释来调用一个方法。但是我的设置中有多个节点,我不希望它们完全同时运行。所以我想给初始延迟设置一个随机值来抵消它们。 不幸的是,这里只允许我使用常量表达式。还有别的办法吗?我想到了使用Spring表达式语言。