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


问题内容

我们要求每个月的1号(时间:00:00:00 AM)准确地运行作业。
我们使用Spring框架的 ScheduledTimerTask 通过delay和period属性来调度作业。此类不支持在特定日期运行作业。

有人可以建议,如何使用Spring和Java技术解决该问题?


问题答案:

如果您不必在集群中的单个节点上运行此作业,则可以使用Spring
Task,请参阅: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.com

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