onWorkerReload

Requerido(workerman >= 3.2.5)

Descrição:

callback Worker::$onWorkerReload

Este recurso não é frequentemente utilizado.

Configura o callback que será executado quando o Worker receber um sinal de recarga.

O callback onWorkerReload pode ser utilizado para realizar diversas tarefas, como recarregar arquivos de configuração de negócios sem a necessidade de reiniciar o processo.

Atenção:

O comportamento padrão do processo filho ao receber o sinal de recarga é sair e reiniciar, para que um novo processo possa recarregar o código de negócios e completar a atualização do código. Portanto, é normal que o processo filho saia imediatamente após a execução do callback onWorkerReload.

Se deseja que o processo filho execute apenas o onWorkerReload após receber o sinal de recarga e não saia, é possível configurar a propriedade reloadable da instância do Worker correspondente como false ao inicializar a instância do Worker.

Parâmetros da função de callback

$worker

O objeto Worker

Exemplo

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Define reloadable como false, ou seja, o processo filho não executa a reinicialização ao receber o sinal de recarga
$worker->reloadable = false;
// Após a recarga, notifica todos os clientes que o servidor executou uma recarga
$worker->onWorkerReload = function(Worker $worker)
{
    foreach($worker->connections as $connection)
    {
        $connection->send('worker reloading');
    }
};
// Executa o worker
Worker::runAll();

Nota: Além de utilizar uma função anônima como callback, também é possível consultar aqui outras formas de escrever callbacks.