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

时间:2016-12-18 12:32:38

标签: java scheduled-tasks

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

需要帮助。我使用的是Java 8。

3 个答案:

答案 0 :(得分:0)

你所寻找的东西被称为cron sceduling它可以让你运行你的工作,例如每周一上午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/

答案 1 :(得分:0)

可以使用Timer和TimerTask类。

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

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

答案 2 :(得分:0)

此要求称为crn job。以下cron设置需要达到上述要求。

*/30 *  * * *