如何在特定日期和时间运行特定方法?

时间:2013-07-25 04:11:47

标签: java hibernate java-ee

我需要强制我的java应用程序在特定的日期和时间执行几个操作。方案如下:

1- user set a specific time and frequency (every day, every month)
2- system starts a trigger for the request

3- once that pre-defined frequency and time are reached 
 3.1 - system performs the required actions that are kept in a method

我发现这个answer但是无法使其发挥作用。

一个例子将不胜感激。

3 个答案:

答案 0 :(得分:3)

有多个java调度程序框架可用于在指定的时间,间隔,周期性执行任务。 Apache quartz是常用的一种。

或只是使用java ScheduledExecutorService

答案 1 :(得分:2)

Quartz库对此非常有用。

如何使用Quartz:请参阅此http://www.mkyong.com/tutorials/quartz-scheduler-tutorial/

答案 2 :(得分:2)

你可以从jdk本身使用Executor,这里是开始的例子:

 ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
 ScheduledFuture<?> handle scheduler.scheduleAtFixedRate(new Runnable() {
            public void run() { System.out.println("your code is here :)"); }
        }, 1, 100, TimeUnit.MINUT);

所以这段代码在1分钟后开始运行,并在每100分钟后运行。

要稍后取消,您需要执行handle.cancel(true)

here

阅读