我有两个类似的问题
php脚本是如何执行的。例如,我有一个使用某些参数调用的文件。假设脚本首先开始处理请求,然后连接到数据库,在该数据库中将值插入表中,然后在文本文件中显示或记录报告。让我们说PHP文件正在将数据插入数据库,而另一个请求来了。它会处理第二个请求吗?
与PayPal API和esp IPN Listner进行交谈,PayPal建议使监听器保持最小化。所以我要说我的听众刚收到大约20个参数的付款通知请求。现在我要将这些保存到数据库中,但同时希望快速获取,这样我也可以捕获其他请求。我的逻辑在这里应该是什么?使用CURL或类似的东西将请求发布到将数据插入表中的另一个页面?这将使我的主要监听器减少负载和快速。这是正确的方法吗?或者我应该在主要监听器中插入数据。
注意:我已经检查了How exactly is a PHP script executed?,答案是他们有一个关于PHP内部的一小时讲座。不是一个明确的答案。
答案 0 :(得分:3)
无论调用多少次,PHP脚本都将按原样运行。如果正在执行php并再次请求它,它将创建一个新的“实例”,与另一个已运行的副本一起运行,这样你就不会收到任何中断。
IPN侦听器是此类事务的一个示例。来自paypal的每个url请求都将由php脚本的单独副本处理,并且完全不会中断。
答案 1 :(得分:1)
php脚本是如何执行的。例如,我有一个使用某些参数调用的文件。假设脚本首先开始处理请求,然后连接到数据库,在该数据库中将值插入表中,然后在文本文件中显示或记录报告。让我们说PHP文件正在将数据插入数据库,而另一个请求来了。它会处理第二个请求吗?
将使用单独的PHP实例。
讨论PayPal API和esp IPN Listner,PayPal建议让监听器保持最小化。所以我要说我的听众刚收到大约20个参数的付款通知请求。现在我要将这些保存到数据库中,但同时希望快速获取,这样我也可以捕获其他请求。我的逻辑在这里应该是什么?使用CURL或类似的东西将请求发布到将数据插入表中的另一个页面?这将使我的主要监听器减少负载和快速。这是正确的方法吗?或者我应该在主要监听器中插入数据。
不,cURL正在阻止,所以这只会让事情变得更糟。只需在正在访问的主要PHP文件中执行此操作 - 如果有20个人同时访问它,您的Web服务器应该可以毫不费力地将它们分开。