reloadable

Description :

bool Worker::$reloadable

Lors de l’exécution de php start.php reload, un signal de rechargement (SIGUSR1) est envoyé à tous les sous-processus.

Lorsque les sous-processus reçoivent le signal de rechargement, ils se terminent automatiquement, puis le processus principal en lance un nouveau. Ceci est généralement utilisé pour mettre à jour le code métier.

Lorsque la variable de processus $reloadable est à false, la réception d'un signal de rechargement ne déclenche que onWorkerReload et ne redémarre pas le processus en cours.

Par exemple, dans le modèle Gateway/Worker, le processus gateway est responsable du maintien des connexions client, tandis que le processus worker est chargé de traiter les demandes. En définissant la propriété reloadable du processus gateway à false, il est possible de mettre à jour le code métier sans interrompre les connexions client lors du rechargement.

Exemple

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Définir si cette instance redémarre ou non après avoir reçu un signal de rechargement
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker starting...\n";
};
// Exécuter le worker
Worker::runAll();