首页 文章

在Java中实现中断服务程序

提问于
浏览
0

我正在构建一个连接到路由器的应用程序,获取一些数据并将获取的数据插入数据库 .

我需要每30秒从路由器获取一次数据 . 然后返回使用新获取的数据更新数据库 .

我不知道如何实现该计时器机制(它类似于中断服务例程机制) .

我是Java新手,任何帮助?我应该使用线程吗?我简要地阅读了关于线程的内容,但并不知道它们是如何工作的

编辑:请注意我在主要方面还有其他事情要做 . 主要是执行几个功能 . 但是,每30秒我想执行一个附加功能 .

2 回答

  • 1

    更简洁的方法是安排定期任务 .

    您可以使用不同的API:

    • ScheduledExecutorService.scheduleAtFixedRate(...)

    • Timer.scheduleAtFixedRate(..)

    两者都会定期执行您的代码 .

  • 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);
    }
    

    您至少需要一个线程,但是从一个线程开始 .

相关问题