onWorkerReload

Richiesto (workerman >= 3.2.5)

Descrizione:

callback Worker::$onWorkerReload

Questa funzionalità non è comunemente utilizzata.

Imposta il callback da eseguire quando il Worker riceve il segnale di reload.

È possibile utilizzare il callback onWorkerReload per svolgere molte azioni, ad esempio ricaricare i file di configurazione del business senza dover riavviare il processo.

Nota:

Di default, quando un processo figlio riceve il segnale di reload, si chiude e riavvia in modo che il nuovo processo possa ricaricare il codice aziendale per completare l'aggiornamento del codice. Quindi, è normale che il processo figlio esegua immediatamente il callback onWorkerReload dopo il reload.

Se si desidera che il processo figlio esegua solo onWorkerReload dopo aver ricevuto il segnale di reload e non si desidera che esca, è possibile impostare la proprietà reloadable della corrispondente istanza Worker come false durante l'inizializzazione dell'istanza Worker.

Parametri della funzione di callback

$worker

Ovvero l'oggetto Worker

Esempio

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Imposta reloadable su false, il che significa che il processo figlio non eseguirà il riavvio quando riceve il segnale di reload
$worker->reloadable = false;
// Dopo il reload, informa tutti i client che il server ha eseguito il reload
$worker->onWorkerReload = function(Worker $worker)
{
    foreach($worker->connections as $connection)
    {
        $connection->send('worker reloading');
    }
};
// Esegui il worker
Worker::runAll();

Nota: Oltre all'uso di una funzione anonima come callback, è possibile utilizzare altre forme di callback come riferimento.