若需执行时间较长的PHP脚本,不宜直接在PHP-FPM中运行,推荐使用pclose(popen())无阻塞方式开启一个PHP-CLI进程来执行脚本。执行完毕后,将结果存入数据库,前端通过AJAX轮询获取通知,如同知乎的实时消息提示。
如果确实需要在PHP-FPM中执行耗时长的脚本,需进行合理配置。首先,将脚本流量通过Nginx转发至预设的独立PHP-FPM动态进程池,以确保脚本执行不干扰其他进程。动态进程池(pm = dynamic)能动态生成进程处理脚本,但会增加内存消耗,建议设置最大进程数(pm.max_children = 20)。若希望PHP-FPM在结束HTTP请求后仍处理后续业务,可以利用fastcgi_finish_request()函数。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。