每小时自动运行Java方法

时间:2014-07-14 06:50:50

标签: java methods time

我在Java中使用这些方法,例如每小时运行一次:

public static void main(String[] args) throws Exception{    
    readLog(); // method to read log file
    sortByDate(); //sort punch in data by day
    checkPeopleIn(); // check people who are in, add and remove to list accordingly 
    output_details(); //output final details
    System.out.print("_____________________________________");      
}

我如何将此功能添加到此程序?在Processing中,我曾经使用millis()方法创建一个计时器,但我找不到相应的....它可用吗?

提前致谢

3 个答案:

答案 0 :(得分:3)

如果这是长时间运行的应用程序(如守护程序或服务)的一部分,则使用计时器的解决方案是可以的。

如果您想每小时运行一次Java应用程序,则需要一个特定于操作系统的解决方案(如cron)。

答案 1 :(得分:2)

查看Java Executor framework

ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        readLog(); // method to read log file
        sortByDate(); //sort punch in data by day
        checkPeopleIn(); // check people who are in, add and remove to list accordingly
        output_details(); //output final details
        System.out.print("_____________________________________");
    }
}, 0, 1, TimeUnit.HOURS);
service.shutdown();

thread开始:“如果您可以使用ScheduledThreadExecutor而不是Timer,请执行此操作。”

答案 2 :(得分:1)

结帐quartz-scheduler。它是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统