如题,nodejs如何去监听mysql数据库的指定的某一张表里面有新的数据插入?
首先,数据库的数据插入从另一个程序中是无法监听的。 如果用笨方法的话就是循环查询,如果本次查询结果与前一次不一样,那就是有变化。 还有可以打开mysql的bin log 日志记录,然后让nodejs去监控bin log日志文件的变化,这样也能发现数据插入。 其它的可行方案暂时没想到,欢迎指点
特定的数据库有办法,比如Oracle可以利用 DCN 机制(Data Change Notification),不过这个跟 Nodejs 没啥关系。。
@Gitforxuyang 貌似只能这样了,谢谢~
@myy 我用的是mysql~
@hcyhehe 想到其它好办法记得@我啊。 我也学习学习
这个是数据库的功能问题,实现也看数据库提供了什么样的能力。 MySQL 上,我目前能想到的方案是:
当然,不是 MySQL 功能这么弱的关系数据库这个功能多半都有现成方案,不用这么折腾了。
如果你是调用统一的接口修改数据库的话,那可以加一层封装,在调用修改数据库的接口之后,通知外部数据库有了修改
在插入的方法加emit不就好了
来自酷炫的 CNodeMD
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
首先,数据库的数据插入从另一个程序中是无法监听的。 如果用笨方法的话就是循环查询,如果本次查询结果与前一次不一样,那就是有变化。 还有可以打开mysql的bin log 日志记录,然后让nodejs去监控bin log日志文件的变化,这样也能发现数据插入。 其它的可行方案暂时没想到,欢迎指点
特定的数据库有办法,比如Oracle可以利用 DCN 机制(Data Change Notification),不过这个跟 Nodejs 没啥关系。。
@Gitforxuyang 貌似只能这样了,谢谢~
@myy 我用的是mysql~
@hcyhehe 想到其它好办法记得@我啊。 我也学习学习
这个是数据库的功能问题,实现也看数据库提供了什么样的能力。 MySQL 上,我目前能想到的方案是:
当然,不是 MySQL 功能这么弱的关系数据库这个功能多半都有现成方案,不用这么折腾了。
如果你是调用统一的接口修改数据库的话,那可以加一层封装,在调用修改数据库的接口之后,通知外部数据库有了修改
在插入的方法加emit不就好了
来自酷炫的 CNodeMD