插入新内容后立即从 mysql 获取更新

Get update from mysql as soon as a new insert

我有一个网店,用户订单将保存在 mysql 稍后将由 "processor.php" 批量处理,因为需要将此订单发送给其他人,所以稍后会处理服务器正在使用聊天应用程序

processor.php 是一个 jabber 机器人,php 机器人将是 运行 24/7,它将每 5 分钟检查一次数据库并处理订单(将其发送到另一个机器人,并根据其他机器人的回复更新订单)

我想知道是否有办法让 processor.php 可以在每次用户提交新订单时从 mysql 收到类似 "hey there is a new order, process it" 的通知,类似于实时

您最好的办法是首先编辑插入数据的文件。

可以使用$query->insert_id;或者 myqsli 等效项,如果您需要新订单的 ID

然后您可以将此 ID 传递给处理者。相信我,依赖 crons 可能会变成一场噩梦,对于付款和订单,我强烈建议避免使用 cron 解决方案。

就是说,如果您的处理器仅更改数据库本身的内容,您可以使用内部 MySQL 触发器!

https://www.siteground.com/kb/mysql-triggers-use/

但是,如果您的处理器执行非数据库工作,您将不得不:

使用你的 cron

设置订单插入,然后在不使用 cron 的情况下自行触发处理器。

设置一个功能,查看用户访问的页面上的订单是否已准备好处理,以便他们的订单可以立即开始处理。

您可以使用AJAX甚至PHP来调用processor.php。你甚至可以给它传递一个特定的 ID。基本上任何基本方法,如文件获取内容、$.get() 或任何其他编程函数(任何语言)都可以让您调用 processor.php 并在您的 Web 服务器上拥有该文件 运行。您可以使用任何支持从相同或不同服务器(大多数情况下)请求文件的语言来执行此操作。

我强烈建议您确保设置适当的权限,甚至是基本的 API,这样只有您的服务器和服务才能触发处理器!