我有一个网上商店,用户订单将被保存在mysql上,稍后将由" processor.php"批处理,稍后会处理,因为需要发送这个订购到其他服务器正在使用聊天应用程序
processor.php是一个jabber机器人,php机器人将全天候运行,它将每5分钟检查一次数据并处理订单(发送给另一个机器人,并根据其他机器人的回复更新订单) )
我想知道是否有办法让processor.php可以收到通知,例如"嘿,有新订单,处理它"每次用户提交新订单时都会从mysql中获取,比如实时
答案 0 :(得分:1)
您可以做的最好的事情是编辑首先插入数据的文件。
您可以使用$ query-> insert_id;或者如果您需要新订单的ID,则为myqsli等价物
然后,您可以将此ID传递给处理器。相信我,依靠crons会成为一场噩梦,付款和订单我强烈建议避免使用cron解决方案。
也就是说,如果你的处理器只改变数据库本身的东西而没有别的东西可以使用内部的MySQL触发器!
https://www.siteground.com/kb/mysql-triggers-use/
但是如果您的处理器执行非数据库工作,则必须:
使用你的cron
设置订单插入,然后在不使用cron的情况下自行触发处理器。
设置一个功能,查看订单是否已准备好在用户访问的页面上进行处理,以便他们的订单可以毫不拖延地开始处理。
您可以使用AJAX甚至PHP来调用processor.php。你甚至可以传递一个特定的ID。基本上任何基本方法,如文件获取内容,$ .get()或任何其他编程功能(使用任何语言)都可以让您调用processor.php并在您的Web服务器上运行该文件。您可以使用支持从相同或不同服务器请求文件的任何语言(大多数情况下)执行此操作。
我强烈建议您确保设置适当的权限甚至基本API,以便只有您的服务器和服务才能触发处理器!