我需要在 java 中构建一个程序,它将每 10 分钟后将数据插入 mysql 数据库。只要用户终止程序,这将继续。我需要 Thread 来构建程序吗?请建议参考或每 10 分钟自动调用的代码块。
问问题
669 次
2 回答
0
您可以使用Timer Task来实现它。
可以由 Timer 安排一次或重复执行的任务。
于 2013-09-13T18:33:01.450 回答
0
我会使用这个java.util.concurrent.*
包,因为它更新更好,更适合线程(所有定时器/延迟都需要实现,以免阻塞你的程序)
这个例子将执行你的任务,然后自动重新安排自己......很好!(try/finally 块确保没有异常会破坏我们的日程安排):
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
class Task implements Runnable {
long untilNextInvocation = 60000; // 1 minute == 60000 milliseconds
private final ScheduledExecutorService service;
public Task(ScheduledExecutorService service) {
this.service = service;
}
@Override
public void run() {
try {
// do your stuff here
} finally {
service.schedule(new Task(service), untilNextInvocation, TimeUnit.MILLISECONDS);
}
}
}
UPDATE --
如何调用:
public static void main(String[] args) {
// set 3 available threads
ScheduledExecutorService service = Executors.newScheduledThreadPool(3);
// kick off service
new Task(service).run();
}
或者
您可以从对象构造函数调用它:
public someClassConstructor() {
// set 3 available threads
ScheduledExecutorService service = Executors.newScheduledThreadPool(3);
// kick off service
new Task(service).run();
}
于 2013-09-13T19:05:46.367 回答