你能用Java重复执行一个任务吗?

是否可以每年,每分钟,每秒,每年重复执行一项任务? 我希望它像守护进程一样运行。

我需要一个计划任务来连续搜索数据库; 如果它找到某个值,那么它应该执行另一个任务。

我想问一下是否有可能重复

您可以使用循环,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); 

为了根据时间执行任务,您需要使用线程。 查看此链接以了解有关它们的更多信息: http : //docs.oracle.com/javase/tutorial/essential/concurrency/threads.html

嗯所以该程序将一直在运行? 可能想看看Java Timer

也许看一下java.util.Timer或Quartz Scheduler会有所帮助。

ScheduledThreadPoolExecutor也可能会有所帮助。 查看他们的示例代码,您应该能够做到这一点。