我正在构建一个连接到路由器的应用程序,获取一些数据并将获取的数据插入数据库。
我需要每30秒从路由器获取一次数据。然后返回使用新获取的数据更新数据库。
我不知道如何实现该计时器机制(它类似于中断服务例程机制)。
我是Java的新手,任何帮助?我应该使用线程吗?我简要地阅读了关于线程的内容,但并不确切知道它们是如何工作的。
编辑: 请注意,主要还有其他事情要做。主要是执行几个功能。但是,每30秒我想执行一个附加功能。
答案 0 :(得分:2)
由于您需要运行其他代码,您可以
ScheduleExecutorService ses = Executors.newSingleThreadScheduledExecutor();
ses.scheduleAtFixedRate(new Runnable() {
public void run() {
Data data = getDataFromRouter();
updateDatabase(data);
}
}, 0, 30, TimeUnit.SECONDS);
另外,我会有一个像这样的简单循环。
while(true) {
Data data = getDataFromRouter();
updateDatabase(data);
Thread.sleep(30 * 1000);
}
您至少需要一个线程,但是从一个线程开始。
答案 1 :(得分:1)
更简洁的方法是安排定期任务。
您可以使用不同的API:
两者都会定期执行您的代码。