1

我需要创建一个Java 代理,只要对 Mysql 或 Psql 数据库中的特定表进行任何更新,就可以知道并执行它的指令。一切都需要自动完成。

我想知道我是Java新手,你们可以给我任何建议..

我的选择是:

1) 在提交后有一个触发器可以唤醒我的 java 应用程序。(使用 Pg_notify 等)

2)或让java应用程序订阅数据库中的特定ID(不确定这是否可以完成,因为异步更新是不可能的,我可能需要让我的代理向数据库询问xx秒以进行更改)

谢谢!

4

1 回答 1

1

是的,使用 NOTIFY 的触发器是在 PostgreSQL 中执行此操作的好方法。使用 JDBC 驱动时的一个重要问题是无法异步接收通知,必须轮询。这通常很好,因为 NOTIFY/LISTEN 机制非常轻量级:如果您想每秒轮询 10(100?)次,那么您可以这样做而不会导致性能问题。有关更多信息,请参阅http://jdbc.postgresql.org/documentation/83/listennotify.html

MySQL 的帮助不大;您需要将触发器 INSERT 行插入监控表并使用 SELECT *(然后 DELETE)重复轮询该表。这将起作用,但您更有可能最终陷入延迟/性能权衡。

于 2012-05-04T03:46:59.973 回答