Maison >développement back-end >Problème PHP >PHP fonctionne trop longtemps et ne répond pas aux autres requêtes.
N'exécutez pas de scripts PHP dont l'exécution prend plus de dix minutes en PHP-FPM.
1. Il est recommandé que les scripts PHP exécutés dans PHP-FPM utilisent pclose(popen()) pour ouvrir un processus PHP-CLI sans bloquer l'exécution de votre script.
2. Une fois l'exécution terminée, insérez le message dans la base de données.
3. La réception effectue une notification de message via une interrogation programmée AJAX (similaire à la notification de message de Zhihu).
Si vous devez exécuter un script aussi long en PHP-FPM, ce n'est pas impossible.
Vous devez d'abord configurer Nginx pour transmettre ce script à un pool de processus dynamique PHP-FPM indépendant préconfiguré (différents pools de processus PHP-FPM écoutent différents ports) pour le traitement, afin que l'exécution du script n'affectera pas les autres pools de processus PHP-FPM. De plus, le pool de processus dynamique (pm = dynamique) peut déployer dynamiquement plus de processus pour traiter les scripts, au prix d'une plus grande consommation de mémoire. Dans ce cas, vous feriez mieux de configurer un nombre maximum de processus (pm.max_children = 20). .
Si vous souhaitez que PHP-FPM continue de traiter les affaires après avoir terminé la requête HTTP, vous pouvez utiliser la fonction fastcgi_finish_request() fournie par PHP-FPM.
Recommandé : "Tutoriel PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!