onWorkerReload

Requiere (workerman >= 3.2.5)

Descripción:

callback Worker::$onWorkerReload

Esta característica no se utiliza comúnmente.

Configura el callback que se ejecutará cuando el Worker reciba una señal de reload.

Puedes utilizar el callback onWorkerReload para hacer muchas cosas, como recargar el archivo de configuración de negocio sin necesidad de reiniciar el proceso.

Nota

La acción predeterminada de los subprocesos al recibir una señal de reload es salir y reiniciarse, para que el nuevo proceso recargue el código de negocio y complete la actualización del código. Por lo tanto, es normal que los subprocesos salgan inmediatamente después de ejecutar el callback onWorkerReload.

Si después de recibir la señal de reload solo deseas que el subproceso ejecute onWorkerReload y no quieres que salga, puedes configurar el atributo reloadable del respectivo Worker en false al inicializar la instancia del Worker.

Parámetros de la función callback

$worker

Es el objeto Worker

Ejemplo

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Configura reloadable como false, es decir, el subproceso no ejecutará el reinicio al recibir la señal de reload
$worker->reloadable = false;
// Al ejecutar reload, informa a todos los clientes que el servidor ha ejecutado el reload
$worker->onWorkerReload = function(Worker $worker)
{
    foreach($worker->connections as $connection)
    {
        $connection->send('worker reloading');
    }
};
// Ejecutar worker
Worker::runAll();

Sugerencia: además de usar funciones anónimas como callback, también puedes consultar aquí para utilizar otros enfoques de callback.