HI
我想每隔X小时在我的程序中运行一个方法,怎么做? 我正在谷歌搜索,没有任何东西:/
答案 0 :(得分:9)
你可以考虑Quartz。
这是在java中运行的某种cron。我承认,如果你只想安排一份工作,这可能是一种过度杀伤。
答案 1 :(得分:6)
您可以查看Timer课程,但最好的选择是使用 ScheduledExecutorService :
e.g。这将以预定的速度发出哔声:
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() {
System.out.println("beep");
}
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() {
beeperHandle.cancel(true);
}
}, 60 * 60, SECONDS);
}
}
答案 2 :(得分:2)
我在大部分时间安排中使用Quartz框架(http://www.quartz-scheduler.org/),但如果你做的很简单,java.util.Timer就可以了。
// in a class body...
public static void main( String[] argv ) {
Timer timer = new Timer();
int secondsBetweenRuns = 3600;
timer.schedule( new MyOwnTask(), 0, secondsBetweenRuns * 1000 );
}
static class MyOwnTask extends TimerTask {
public void run() {
doWhateverYouNeedToDoEveryHour();
}
}
答案 3 :(得分:0)
Scheduled Task(在Windows)或Cron(在Unix中)
答案 4 :(得分:0)
您可以将时间保存在某一点,而不是启动计时器。时间到了,运行方法并重新启动计时器。