检查数据库值我有,我在数据库检查特定的值每隔10秒左右的情况。而且,如果值为YES,那么我会从Java应用程序执行一堆shell脚本。现在替代在while循环
,在数据库中的值取决于用户在网页上提交的工作只是更新为是曾经在一段时间。因此,运行一个while循环来检查数据库中该值似乎是一个非常糟糕的设计,我想实现使用听众更清洁的方法(Observer设计模式)。
如何将这种实现是什么样子?我可以遵循的任何示例来做到这一点?
检查数据库值我有,我在数据库检查特定的值每隔10秒左右的情况。而且,如果值为YES,那么我会从Java应用程序执行一堆shell脚本。现在替代在while循环
,在数据库中的值取决于用户在网页上提交的工作只是更新为是曾经在一段时间。因此,运行一个while循环来检查数据库中该值似乎是一个非常糟糕的设计,我想实现使用听众更清洁的方法(Observer设计模式)。
如何将这种实现是什么样子?我可以遵循的任何示例来做到这一点?
是的,有更好的工作。所以在mysql中有一些名为binlog reader的东西。那就是在mysql集群数据库中如何完成主从同步。
因此,无论你写你自己的逻辑在https://github.com/shyiko/mysql-binlog-connector-java它可以获取上表中的所有CHANE事件
或使用https://github.com/zendesk/maxwell来读取特定的表和whenver事件中值的任何变化,有检查,如果它的条件匹配和EXCUTE脚本或java应用程序的基础上,而不是将其作为cron运行。
的总体思路是使用DB triggers,从Java端注册DB监听器,并从DB侧通知当一些事件已经发生。
Pls review proposed solutions How to implement a db listener in Java