你能在Java中重复执行任务?(Can you execute a task repeatedly

2019-09-21 02:50发布

是否有可能每一天重复执行任务,每分钟,每一秒,每一年? 我希望它像一个后台进程运行。

我需要一个计划任务,不断搜索数据库; 如果发现某个值,那么就应该执行进一步的任务。

Answer 1:

我想问是否有可能反复

您可以使用一个循环,或ScheduleExecutorService,或定时器,或石英。

每一天的每一分钟每一秒每一年

所以一旦第二。

我希望它像一个后台进程运行。

我只想让一个守护线程则。 没有必要让“喜欢”一个守护进程。

如果找到正确的值,那么它应该做的剩余任务。

够简单。

读取数据,检查值,如果它想要做休息什么。



Answer 2:

该java.util.Timer中和java.util.TimerTask中的类,我将把共同作为Java定时器框架,很容易让程序员安排简单的任务。

public class Reminder {
    Timer timer;

    public Reminder(int seconds) {
        timer = new Timer();
        timer.schedule(new RemindTask(), seconds*1000);
    }

    class RemindTask extends TimerTask {
        public void run() {
            System.out.format("Time's up!%n");
            timer.cancel(); //Terminate the timer thread
        }
    }



    public static void main(String args[]) {
        new Reminder(5);
        System.out.format("Task scheduled.%n");
    }
}

或计划计时器任务重复运行

int delay = 5000;   // delay for 5 sec.
int period = 1000;  // repeat every sec.
Timer timer = new Timer();

timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            // Task here ...
        }
    }, delay, period);


Answer 3:

为了做到基于时间的任务你想使用线程。 看看这个链接,以了解他们的情况: http://docs.oracle.com/javase/tutorial/essential/concurrency/threads.html



Answer 4:

嗯,所以程序要运行所有的时间? 可能要到Java的定时器



Answer 5:

也许看看java.util.Timer中或Quartz调度将是有益的。

一的ScheduledThreadPoolExecutor或许也有帮助。 看看他们的示例代码,你应该能够做到这一点。



文章来源: Can you execute a task repeatedly in Java?