Heim >Backend-Entwicklung >PHP-Problem >PHP läuft zu lange und antwortet nicht auf andere Anfragen.

PHP läuft zu lange und antwortet nicht auf andere Anfragen.

angryTom
angryTomOriginal
2019-10-16 16:09:102258Durchsuche

PHP läuft zu lange und antwortet nicht auf andere Anfragen.

Führen Sie keine PHP-Skripte aus, deren Ausführung länger als zehn Minuten in PHP-FPM dauert.

1. Es wird empfohlen, dass PHP-Skripte, die in PHP-FPM ausgeführt werden, pclose(popen()) verwenden, um einen PHP-CLI-Prozess zu öffnen, um Ihr Skript ohne Blockierung auszuführen.

2. Nachdem die Ausführung abgeschlossen ist, fügen Sie die Nachricht in die Datenbank ein.

3. Die Rezeption führt die Nachrichtenbenachrichtigung über eine geplante AJAX-Abfrage durch (ähnlich der Nachrichtenbenachrichtigung von Zhihu).

Wenn Sie ein so zeitaufwändiges Skript in PHP-FPM ausführen müssen, ist dies nicht unmöglich.

Zuerst müssen Sie Nginx so konfigurieren, dass dieses Skript zur Verarbeitung an einen vorkonfigurierten unabhängigen dynamischen PHP-FPM-Prozesspool (verschiedene PHP-FPM-Prozesspools überwachen unterschiedliche Ports) weitergeleitet wird, damit die Ausführung des Skripts wirkt sich nicht auf andere PHP-FPM-Prozesspools aus. Darüber hinaus kann der dynamische Prozesspool (pm = dynamisch) dynamisch mehr Prozesse zur Verarbeitung von Skripten bereitstellen, allerdings auf Kosten eines höheren Speicherverbrauchs. In diesem Fall sollten Sie besser eine maximale Anzahl von Prozessen konfigurieren (pm.max_children = 20). .

Wenn Sie möchten, dass PHP-FPM die Geschäftsabwicklung nach Abschluss der HTTP-Anfrage fortsetzt, können Sie die von PHP-FPM bereitgestellte Funktion fastcgi_finish_request() verwenden.

Empfohlen: „PHP-Tutorial“

Das obige ist der detaillierte Inhalt vonPHP läuft zu lange und antwortet nicht auf andere Anfragen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist PHP gut?Nächster Artikel:Ist PHP gut?