reloadable

Erklärung:

bool Worker::$reloadable

Wenn php start.php reload ausgeführt wird, wird ein Reload-Signal (SIGUSR1) an alle Kindprozesse gesendet.

Nach Erhalt des Reload-Signals wird das Kindprozess automatisch beendet und der Hauptprozess startet automatisch einen neuen Prozess, in der Regel für die Aktualisierung des Geschäftslogik-Codes.

Wenn $reloadable des Prozesses auf false gesetzt ist, wird nach Erhalt des Reload-Signals nur das onWorkerReload ausgelöst, und der aktuelle Prozess wird nicht neu gestartet.

Zum Beispiel, im Gateway/Worker-Modell ist der Gateway-Prozess für die Verwaltung der Client-Verbindungen zuständig, während der Worker-Prozess die Anfragen verarbeitet. Durch das Setzen der reloadable-Eigenschaft des Gateway-Prozesses auf false kann der Geschäftslogik-Code aktualisiert werden, ohne die Client-Verbindungen zu trennen.

Beispiel

use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:8484');
// Setzen der Eigenschaft, ob diese Instanz nach Erhalt des Reload-Signals neu gestartet werden soll
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker startet...\n";
};
// Starten des Workers
Worker::runAll();