是否有任何Wheel/POCO/Option使用POE模块在Perl中执行此操作:我想监视DB表以查找已更改的记录(删除/插入/更新)并相应地对这些更改做出反应.
如果是,可以提供一些代码或显示此链接?
不是我知道的,但如果你真的很勤奋,你可以写一个.我可以想到两种方法.
最好的方法之一是:访问事务日志/复制源,例如MySQL binlog.为其格式编写POE :: Filter,然后使用POE :: Wheel :: FollowTail获取事件流,每个事件对应一个影响DB的语句.然后,您可以过滤数据以找到您感兴趣的内容.
不太好的想法:使用EasyDBI对表运行定期选择,看看有什么变化.如果您的数据很小,它可以工作(但它仍然容易出现计时问题); 如果你的数据很大,这将是一个悲惨的失败.
如果您使用的是PostgreSQL,则可以在表的更改上创建一个名为NOTIFY的触发器,并在您的客户端应用程序中打开一个连接并执行相同通知的LISTEN.然后,您可以让POE在DBD :: Pg pg_socket文件描述符上侦听文件事件.
或者,您可以创建一个SQL触发器,该触发器会触发另一个文件或网络事件(写入文件,命名管道或套接字),然后让POE监听.
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |