PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php fpm请求排队大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我在服务器上使用PHP 5.2.11 PHP-fpm Nginx.
如果用户发送了一个耗时的请求“ A”,则在从服务器获取对“ A”的响应之前,他将发送更多其他普通请求.
奇怪的是,用户在返回对“ A”的响应之前无法获得任何响应,似乎PHP-fpm将请求排队.
我检查了tcp连接,请求是从不同的套接字发送的,具有相同的PHPSESSION.在服务器端,PHP-fpm还将正常请求写入慢速日志.

我不知道该如何解决,有什么建议吗?

解决方法:

这不是PHP-FPM的错误.因为您说的是他们有相同的会话,那才是罪魁祸首. PHP中的会话具有按会话锁定的功能,因此当同一会话中有未完成的请求时,一个用户无法加载具有特定会话ID的@L_874_19@;调用session_start()时会发生阻塞.这是为了避免让不同的请求编辑相同的会话变量(这会引起各种问题).当请求结束并将其结果会话数据写入存储时,下一个可以启动.

如果您希望能够读取会话变量并开始一项耗时的工作,但又不想阻止其他请求的发生,则在读取需要继续的会话数据后,只需使用session_write_close()即可.请注意,调用后您将无法修改会话数据(并且可能无法读取它,因为$_SESSION已清空,但无法记住).

大佬总结

以上是大佬教程为你收集整理的php fpm请求排队全部内容,希望文章能够帮你解决php fpm请求排队所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: