Java应用程序不断检查表中添加的新行

Java应用程序不断检查表中添加的新行,java,mysql,database,Java,Mysql,Database,我有一个场景:我们有一个大表(它被分成几个小表),我想使用触发器来跟踪更改。如果大表有insert、update和delete事件,我们将向跟踪表插入行。我需要构建一个Java应用程序来持续检查跟踪表,看看是否还有行留在那里,将它们取回,进行一些计算,更新缓存并删除它们 我的问题是什么是最有效的实施方式 一些关切: 连续检查数据库不是很好。也许每次睡一秒钟 跟踪表中的一些行可以按ID分组。我们每次只需要处理不同的ID 需要限制返回行,可能是200行 这听起来像是试图在数据库中实现队列。JMS可

我有一个场景:我们有一个大表(它被分成几个小表),我想使用触发器来跟踪更改。如果大表有insert、update和delete事件,我们将向跟踪表插入行。我需要构建一个Java应用程序来持续检查跟踪表,看看是否还有行留在那里,将它们取回,进行一些计算,更新缓存并删除它们
我的问题是什么是最有效的实施方式
一些关切:

  • 连续检查数据库不是很好。也许每次睡一秒钟
  • 跟踪表中的一些行可以按ID分组。我们每次只需要处理不同的ID
  • 需要限制返回行,可能是200行

这听起来像是试图在数据库中实现队列。JMS可能是一个更好的选择

您可以定期轮询表以查找条目。如果ID必须分组在一起,我假设您需要某种方式来知道ID是完整的


如果ID的大小在增加,则可以在查询中包含接下来的200个ID。e、 g.
WHERE-id<{id-up}+200

如果要使用DB触发器,为什么需要为此实现java代码?为什么不直接使用DB触发器?如果触发器足够,请与Alex Calugarescu达成一致,然后使用它们。我看到你提到过一个缓存,让我们知道你使用的缓存类型。@ AlxCaluGaReSuCu我试图只使用触发器来处理缓存(MeMcCache),但是它不起作用。你可能会为此考虑使用石英调度器。Quartz将允许您像*nix cronjobs一样运行计划作业,并且易于设置和配置。你可以在网上找到很多样品。对不起,我这里没有图片(即你的确切用例)。如果要跟踪更改,则需要在应用程序的数据访问层(在访问特定对象的服务中)中进行跟踪,或者创建在CRUD操作中触发的DB触发器。我看不出轮询解决方案是如何工作的。