须要实行十几分钟的PHP剧本就不要在PHP-FPM里跑了。
1. 发起运转在PHP-FPM中的PHP剧本用pclose(popen())无壅塞翻开一个PHP-CLI历程实行你的剧本。
2. 实行完成后把音讯插进去数据库。
3. 前台经由过程AJAX定时轮询举行音讯关照(相似知乎的音讯关照一样)。
假如你肯定要在PHP-FPM中跑这类耗时很长的剧本也不是不可以。
起首你须要设置Nginx把这个剧本转发给一个预先设置好的自力的PHP-FPM动态历程池(差别的PHP-FPM历程池监听差别的端口)来处置惩罚,如许该剧本的实行不会影响到其他PHP-FPM历程池。而且动态历程池(pm = dynamic)可以动态fork出更多的历程来处置惩罚剧本,价值就是内存斲丧多点,这时候你最好设置一个最大历程数(pm.max_children = 20)。
假如你想让PHP-FPM完毕HTTP要求后继承处置惩罚营业,可以用fastcgi_finish_request()这个PHP-FPM供应的函数。
引荐:《PHP教程》
以上就是php运转太长致使不响应其他要求的细致内容,更多请关注ki4网别的相干文章!