我想编写一个程序,用于轮询特定表以查找新条目,并将它们写入消息queue
。
我正在考虑编写一个thread
,它将无限循环并尝试获取数据库独占lock
,如果未获取thread.sleep()
,则会调用lock
。
然后在获得lock
后,如果在数据库thread.sleep()
中找不到新记录,则会再次调用。
线程是最好的方法还是应该使用像计时器这样的东西?
编辑:基本上问题归结为:如果我需要使用java轮询oracle数据库,我应该写一个线程,还是像timer / sheduledExecutor / trigger这样的东西?
答案 0 :(得分:0)
锁定正在生产中使用的表是一个坏主意。我建议只在原始表中插入新条目时创建一个触发器表并在触发器表中添加条目。现在,您可以在该触发器表上使用您的方法。
答案 1 :(得分:-1)
您可以尝试每隔20秒进行固定间隔检查,检查数据库是否有新条目。使此固定间隔可配置(常量)。例如: - 了Thread.sleep(20)