Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于监视数据库表更改的Perl POE模块?_Perl_Poe - Fatal编程技术网

是否有用于监视数据库表更改的Perl POE模块?

是否有用于监视数据库表更改的Perl POE模块?,perl,poe,Perl,Poe,在使用POE模块的Perl中,是否有任何Wheel/POCO/选项可以执行此操作: 我希望监视DB表中更改的记录(删除/插入/更新),并对这些更改做出相应的反应 如果是,你能提供一些代码或链接来说明这一点吗?我不知道,但如果你真的很勤奋,你可以写一个。我可以想出两种方法 最好先访问事务日志/复制提要,例如MySQL binlog。为其格式编写一个,然后使用获取一个事件流,每个影响DB的语句对应一个事件流。然后,您可以过滤数据以找到您感兴趣的内容 不太好的主意:使用来对表运行定期选择,看看发生了什

在使用POE模块的Perl中,是否有任何Wheel/POCO/选项可以执行此操作: 我希望监视DB表中更改的记录(删除/插入/更新),并对这些更改做出相应的反应


如果是,你能提供一些代码或链接来说明这一点吗?

我不知道,但如果你真的很勤奋,你可以写一个。我可以想出两种方法

最好先访问事务日志/复制提要,例如MySQL binlog。为其格式编写一个,然后使用获取一个事件流,每个影响DB的语句对应一个事件流。然后,您可以过滤数据以找到您感兴趣的内容


不太好的主意:使用来对表运行定期选择,看看发生了什么变化。如果您的数据很小,它可以工作(但仍然容易出现时间问题);如果您的数据很大,这将是一个悲惨的失败。

如果您使用的是PostgreSQL,您可以在表的更改上创建一个名为NOTIFY的触发器,并在客户端应用程序中打开连接并对相同的通知执行侦听。然后,您可以让POE侦听DBD::Pg Pg_套接字文件描述符上的文件事件

或者,您可以创建一个导致触发另一个文件或网络事件的SQL触发器(写入一个名为管道或套接字的文件),并让POE监听该事件