reloadable
Descrizione:
bool Worker::$reloadable
Quando viene eseguito il comando php start.php reload
, verrà inviato un segnale di reload (SIGUSR1) a tutti i processi figlio.
I processi figlio, una volta ricevuto il segnale di reload, termineranno automaticamente e quindi il processo principale avvierà automaticamente un nuovo processo, di solito utilizzato per aggiornare il codice di business.
Quando il processo $reloadable è impostato su false, la ricezione del segnale di reload attiverà solo onWorkerReload e non riavvierà il processo corrente.
Ad esempio, nel modello Gateway/Worker, il processo gateway gestisce la manutenzione delle connessioni dei client, mentre il processo worker si occupa delle richieste. Impostando la proprietà reloadable del processo gateway su false, è possibile aggiornare il codice di business senza interrompere la connessione con i client.
Esempio
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
// Imposta se questo istanza deve riavviarsi dopo aver ricevuto il segnale di reload
$worker->reloadable = false;
$worker->onWorkerStart = function ($worker) {
echo "Avvio del worker...\n";
};
// Esegui il worker
Worker::runAll();