是否可以每天、每分钟、每秒、每年重复执行一项任务?我希望它像守护进程一样运行。
我需要一个定时任务来连续搜索数据库;如果它找到某个值,那么它应该执行进一步的任务。
是否可以每天、每分钟、每秒、每年重复执行一项任务?我希望它像守护进程一样运行。
我需要一个定时任务来连续搜索数据库;如果它找到某个值,那么它应该执行进一步的任务。
我想问是否可以重复
您可以使用循环、ScheduleExecutorService、Timer 或 Quartz。
每一天每一分钟每一秒每一年
所以每秒一次。
我希望它像守护进程一样运行。
那我就让它成为一个守护线程。不需要让它“像”一个守护进程。
如果它找到正确的值,那么它应该完成剩余的任务。
很简单。
读取数据,检查值,如果它是你想要的,其余的。
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);
也许看看java.util.Timer或Quartz Scheduler会有所帮助。
ScheduledThreadPoolExecutor也可能会有所帮助。查看他们的示例代码,您应该能够做到。
为了根据时间执行任务,您需要使用线程。查看此链接以了解有关它们的更多信息:http: //docs.oracle.com/javase/tutorial/essential/concurrency/threads.html
嗯,所以程序将一直运行?可能想研究Java Timer