运行 Java 调度程序取决于时钟时间

Running Java scheduler depends on clock time

我对调度程序有特殊要求。我需要每 30 分钟 运行 一个调度程序。这很容易完成,但问题是这个调度程序取决于时钟时间。就像假设我已经在 00:15 开始我的程序,然后启动我的调度程序将不会启动。第一个调度程序将 运行 在 00:30,然后它将 运行 间隔 30 分钟。

同样需要帮助。我正在使用 Java 8.

你要找的东西叫做 cron scheduling 它可以让你 运行 你的工作例如每周一上午 10 点或每小时每 30 分钟 这里有一些链接

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

How to create a Java cron job

https://www.mkyong.com/java/java-cron-job-to-run-a-jar-file/

Timer 和 TimerTask classes 可以使用。

Timer class 包含一个方法 schedule(),您可以通过它传递您的任务 (TimerTask)。 该方法的签名如下: public void schedule(TimerTask任务,长时间延迟,长时间) 第一个参数:TimerTask 对象 第二个参数:以毫秒为单位的延迟,在提到的毫秒之后任务将开始执行。 第三个参数:以毫秒为单位的周期,后续执行将在所述时间段的固定间隔发生。

参考:https://docs.oracle.com/javase/8/docs/api/java/util/Timer.html

这个需求叫做crn job。需要以下 cron 设置才能实现上述要求。

*/30 *  * * *