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

使用Spring在特定日期(每月1日)运行计时器任务

蓟浩旷
2023-03-14

我们要求每个月1日(时间: 00:00:00 AM)准确地运行一个作业。
我们使用Spring框架的计划时间任务来使用延迟和周期属性来计划作业。此类不支持在特定日期运行作业。

有人能建议我们如何使用Spring和Java技术解决这个问题吗?

共有3个答案

鄢朝斑
2023-03-14

由于v5.3 Spring支持表示常用序列的宏。请参阅:Spring 5.3中的新功能:改进的Cron表达式

在您的情况下,您可以使用:

@Scheduled(cron = "@monthly")
public void task() {
    // your task
}

这和写这篇文章是一样的:

@Scheduled(cron = "0 0 0 1 * *")
public void task() {
    // your task
}
逄嘉禧
2023-03-14

您可以使用Quartz调度器。它与Spring融为一体。

http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-06

张勇
2023-03-14

如果不必在群集中的单个节点上运行此作业,可以使用Spring任务,请参阅:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

@Scheduled(cron="0 0 0 1 1/1 *")
public void doSomething() {
    // something that should execute on 1st day every month @ 00:00
}

要生成cron表达式,请尝试cronmaker。通用域名格式

请注意,如果在集群中使用此代码,它将在所有节点上运行。

 类似资料:
  • 我试图使一个倒计时,显示总天数,小时,分钟和秒的剩余特定日期。 这就是我到目前为止所创造的。 我用过计时器,它用Console.WriteLine计数,但TextViews什么也不显示,也不更新...有人知道如何每秒钟更新TextViews吗?

  • 问题内容: 该的getTime()获取以毫秒为某一特定日期时间。能否可靠地用于18世纪的约会。我们使用Millis并将其存储在字符串变量中以备将来比较。过去可以使用多长时间有限制? 问题答案: 如果您要比较遥远的过去的日期/时间,我强烈建议您看一下JodaTime。或者实际上是任何类型的日期/时间比较和计算。这是一个很棒的图书馆! 不要依靠getTime()做你想做的事情。至少考虑使用Java的C

  • 问题内容: 我想在的日期选择器中禁用特定的日期。 我正在使用CSS作为组件。 我要禁用的日期将根据组合中先前值的选择而动态更改。 我相信应该可以,尽管不确定。 我怎样才能做到这一点 ? 问题答案: 我假设您正在使用Angular-UI中的指令。该属性使您可以禁用某些日期(例如,周末)。看到这个笨蛋http://plnkr.co/edit/gGAU0L?p=preview 如果要基于选择动态禁用日期

  • 问题内容: 使用date(1970年1月1日)作为时间操纵的默认标准有什么原因吗?我已经在Java和Python中看到了这个标准。我知道这两种语言。还有其他遵循相同标准的流行语言吗? 请描述。 问题答案: 这是Unix时间的标准。 Unix时间或POSIX时间是一种用于描述时间点的系统,时间点定义为自1970年1月1日午夜多点协调世界时(UTC)起经过的秒数,不包括leap秒。

  • 问题内容: 我正在尝试使用JQuery Ui禁用特定日期。但是,我没有运气,这是我的代码: 实例化datepicker对象 获取日历中要禁用的日期 它似乎没有用,我知道如何解决这个问题。干杯。 问题答案: 好像您在一个输入上调用了两次。很难遵循您的代码,但是如果您重新组织代码并删除第二个调用,那么一切都会正常进行:

  • 我有一个代码必须在未来的某个日期执行,比如说我有一个未来的日期,我想在未来的1分钟内执行一段代码,但只执行一次。我知道我需要用java定时器和TimerTask来实现这一点。例如,做这样的事情: 我正在寻找一种优雅的方式来使用SchduledExecutorService,以便有一个特定的池,因为这个池将用于多个调用。有人能帮我吗?