我有一个网店,用户订单将保存在mysql上,稍后将由“processor.php”批处理,稍后将处理,因为将此订单发送到其他服务器的要求是使用聊天应用程序processor.php是一个jabber bot,php bot将全天候运行,它将每5分钟检查一次db并处理订单(将其发送到另一个bot,并根据其他bot的回复更新订单)我想知道是否有一种方法可以让processor.php在每次用户提交新订单时都能从mysql收到一个类似“嘿,有一个新订单,处理它”的通知,比如实时的通知
yb3bgrhw1#
您所能做的最好的事情就是编辑首先插入数据的文件。您可以使用$query->insert\u id;如果您需要新订单的id,也可以使用myqsli然后可以将此id传递给处理器。相信我,依赖cron可能会成为一场噩梦,对于支付和订单,我强烈建议避免使用cron解决方案。也就是说,如果您的处理器只更改数据库本身的内容,而不更改其他内容,那么您可以使用内部mysql触发器!https://www.siteground.com/kb/mysql-triggers-use/但是,如果您的处理器没有db工作,您必须:使用你的cron设置order insert,以便在不使用cron的情况下自己触发处理器。设置一个函数,查看用户访问的页面上的订单是否准备好处理,以便他们的订单可以毫不延迟地开始处理。您可以使用ajax甚至php来调用processor.php。您甚至可以给它传递一个特定的id。实际上,任何基本方法,如file get contents、$.get()或任何其他编程函数(任何语言)都可以让您调用processor.php并在web服务器上运行该文件。您可以从任何支持从相同或不同服务器请求文件的语言(所以大多数语言)中执行此操作。我强烈建议您设置适当的权限,甚至一个基本的api,这样只有您的服务器和服务可以触发处理器!
1条答案
按热度按时间yb3bgrhw1#
您所能做的最好的事情就是编辑首先插入数据的文件。
您可以使用$query->insert\u id;如果您需要新订单的id,也可以使用myqsli
然后可以将此id传递给处理器。相信我,依赖cron可能会成为一场噩梦,对于支付和订单,我强烈建议避免使用cron解决方案。
也就是说,如果您的处理器只更改数据库本身的内容,而不更改其他内容,那么您可以使用内部mysql触发器!
https://www.siteground.com/kb/mysql-triggers-use/
但是,如果您的处理器没有db工作,您必须:
使用你的cron
设置order insert,以便在不使用cron的情况下自己触发处理器。
设置一个函数,查看用户访问的页面上的订单是否准备好处理,以便他们的订单可以毫不延迟地开始处理。
您可以使用ajax甚至php来调用processor.php。您甚至可以给它传递一个特定的id。实际上,任何基本方法,如file get contents、$.get()或任何其他编程函数(任何语言)都可以让您调用processor.php并在web服务器上运行该文件。您可以从任何支持从相同或不同服务器请求文件的语言(所以大多数语言)中执行此操作。
我强烈建议您设置适当的权限,甚至一个基本的api,这样只有您的服务器和服务可以触发处理器!