reloadable
Beschreibung:
bool Worker::$reloadable
Wenn php start.php reload ausgeführt wird, wird ein Reload-Signal (SIGUSR1) an alle Unterprozesse gesendet.
Nachdem der Unterprozess das Reload-Signal empfängt, wird er automatisch beendet und der Hauptprozess startet automatisch einen neuen Prozess, was normalerweise zur Aktualisierung des Geschäftscodes verwendet wird.
Wenn der Prozess $reloadable auf false gesetzt ist, wird beim Empfang des Reload-Signals nur onWorkerReload ausgelöst, der aktuelle Prozess wird jedoch nicht neu gestartet.
Im Beispiel des Gateway/Worker-Modells ist der Gateway-Prozess dafür verantwortlich, die Client-Verbindungen aufrechtzuerhalten, während der Worker-Prozess für die Bearbeitung von Anfragen zuständig ist. Wenn die reloadable-Eigenschaft des Gateway-Prozesses auf false gesetzt wird, kann der Geschäftscode aktualisiert werden, ohne die Client-Verbindungen zu unterbrechen.
Beispiel
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
// Legt fest, ob dieses Exemplar nach Erhalt des Reload-Signals neu gestartet wird
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
echo "Worker starting...\n";
};
// Starte den Worker
Worker::runAll();