Heim >Backend-Entwicklung >PHP-Problem >So aktualisieren Sie PHP-Code im laufenden Betrieb

So aktualisieren Sie PHP-Code im laufenden Betrieb

(*-*)浩
(*-*)浩Original
2019-10-11 10:47:463732Durchsuche

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!

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:Was macht PHP hauptsächlich?Nächster Artikel:Was macht PHP hauptsächlich?