0

我需要检查新记录是否已插入数据库。我正在创建侦听器以持续轮询数据库,但有一些延迟我需要检查新记录是否已插入或插入到新记录中的表中,我想获取该数据,否则无需从表中获取数据。这是我的听众课..

public class GetGpsDataListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        Timer timer = new Timer();
        timer.schedule(new MyTimerTask(), 1000, 1000);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
}

这是我的计时器课..

public class MyTimerTask extends TimerTask {

    @Override
    public void run() {
        System.out.println("Inside run");
        // Here I will connect to database to check new record from table..
    }
}
4

1 回答 1

1

如果您的应用程序正在执行所有插入操作,那么我认为我不会轮询数据库以查看是否插入了新记录。轮询数据库可能会占用大量资源,尤其是在表变大的情况下,并且通常还意味着您需要在应用程序中保留一些状态以允许您查看已更改的内容。

当您的应用程序进行插入时,它将能够看到

  • 插入是否成功
  • 插入记录的id是什么

我只允许执行插入的代码与单独的类通信,表明插入成功以及插入记录的 id 是什么。单独的类可以做它需要做的任何事情。

如果这需要异步完成,您可以考虑将 id 拉入队列并允许您的计时器任务读取它们。

于 2013-11-11T11:29:00.810 回答