Heim >Backend-Entwicklung >PHP-Problem >So aktualisieren Sie PHP-Code im laufenden Betrieb
Das ZPHP-Framework wird hier als Demonstration verwendet. Um ein Hot-Update von Swoole-Code zu implementieren, laden Sie in der WorkerStart-Callback-Funktion das ZPHP-Framework: (Empfohlenes Lernen : PHP-Video-Tutorial)
use ZPHP\ZPHP; $zphp = null; $mimes = null; $http = new swoole_http_server('0.0.0.0',9501); $http->on('request', function (swoole_http_request $request, swoole_http_response $response){ //...... }); $http->on('WorkerStart',function($serv, $worker_id){ //框架载入 require __DIR__ . DIRECTORY_SEPARATOR . 'zphp' . DIRECTORY_SEPARATOR . 'ZPHP' . DIRECTORY_SEPARATOR . 'ZPHP.php'; global $zphp; $zphp = ZPHP::run(__DIR__, false, 'default'); global $mimes; $mimes = require "mimes.php"; }); $http->start();
Der Dateiname ist http_server.php
Führen Sie dieses Skript im Hintergrund aus:
php http_server.php &
Geben Sie 192.168.1.116 ein: 9501 im Browser für http-Anfrage:
Dies liegt daran, dass nach dem Laden des ZPHP-Frameworks auf die Standardmethode unter dem Standardcontroller zugegriffen wird. Eine Codezeile lautet:
$data = $project."zchat runing in swoole!!!!\n";
Ändern Sie nun diese Zeile des Codes wie folgt:
$data = $project."The code is modified!!!!\n";
Prozess von http_server unter Linux anzeigen
ps axuf|grep http_server
Verwenden Sie den folgenden Befehl, um ein Signal an den Managerprozess zu senden, um den Arbeitsprozess neu zu laden:
kill -USR1 5913
Es ist ersichtlich, dass die Prozessnummern der vier Worker-Prozesse dieselben sind wie zuvor. Es ist anders, was bedeutet, dass der Manager-Prozess den Worker-Prozess überlastet hat
Aktualisieren Sie die Seite im Browser, um sie anzuzeigen
Das Hot-Update ist erfolgreich~
Hier eine kleine Zusammenfassung:
Das Code-Hot-Update aktualisiert tatsächlich den Inhalt in der Rückruffunktion „WorkerStart“, was bedeutet, dass unser Der Geschäftscode muss in der Rückruffunktion „WorkerStart“ platziert werden.
Das obige ist der detaillierte Inhalt vonSo aktualisieren Sie PHP-Code im laufenden Betrieb. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!