CURL耗尽PHP-fpm的worker如何解决?
关注者
10被浏览
2,772登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
题主的阐述可能不太严谨,并非是curl耗尽fpm连接。php的执行过程都是同步阻塞的,除了curl,其他处理过程冗长的业务也会长时间占着fpm连接。
所以题主的问题应该改为: 有些接口业务处理时间很长,会长时间占满fpm连接,导致没有空闲的fpm资源为用户服务。应该怎么办?
两种情况
1.可以通过优化,缩短时间的场景
检查耗时的点卡在哪里,排查配置/逻辑不当导致的耗时。
使用异步扩展,将能够并行处理的业务同时执行(例如curl某api多次的场景)
2.无法缩短,或者优化后依然耗时的场景
只能走消息队列异步去处理了。前端通过websocket或者轮询取得结果。