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