gpt4 book ai didi

php - 使用 Node.js 跟踪对 MySQL 表的更改

转载 作者:可可西里 更新时间:2023-11-01 08:21:16 25 4
gpt4 key购买 nike

我正在尝试将 node.js 应用程序集成到现有的 PHP/MySQL 系统中。 node-mysql 用于让node.js访问MySQL数据库。 MySQL 数据库中名为 tableA 的表每 10 分钟更新一次新数据。

问题: 使用 Node ,我需要 Node 服务器在 tableA 更新时持续检查 tableA 是否有更改。实现这一目标的好方法是什么?

我在想,如果我使用setInterval(checkDb(tableA), 10*60*1000),或者无限循环,checkDb查询函数可能与数据库更新。

我也恰好在使用 socket.io 所以 PHP 系统 emit('dbUpdated') 到 Node 服务器的一个好方法是,如果它是PHP 甚至可以向 node.js 发送消息?

Node 代码

var dbCheckQueue = function(callback) {
client.query('SELECT * from tableA',
function(error, results, fields) {
if error
throw error;
callback(results);
});
}

// 10mins-interval checking of table
setInterval(function() {
dbCheckQueue(function(results) {
console.log('Fresh meat!')
});
}, 10*60*1000);

最佳答案

理想情况下,您会在完成后从进行更新的地方触发事件。

由于您使用的是套接字,您可以创建一个“事件”连接或类似的连接(验证或其他一些方法来指示它正在连接以触发事件),这将连接到您的套接字并触发更新和断开连接。无论平台如何,只要您能够创建连接,就可以从任何地方调用它。连接后,脚本将发送您想要触发的任何命令并断开连接/完成更新过程。

您可以直接从进行更新的地方执行此操作,也可以使用 sys_exec() 在 mysql 上设置触发器以执行另一个与上述相同的脚本。

关于php - 使用 Node.js 跟踪对 MySQL 表的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com