onWorkerReload

requisitos (workerman >= 3.2.5)

Descrição:

callback Worker::$onWorkerReload

Este recurso não é muito utilizado.

Define o callback que será executado quando o Worker receber o sinal de reload.

Você pode usar o callback onWorkerReload para fazer muitas coisas, como recarregar arquivos de configuração de negócios sem precisar reiniciar o processo.

Atenção

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

Se você deseja que o subprocesso execute apenas o onWorkerReload após receber o sinal de reload e não queira que ele saia, você pode definir a propriedade reloadable do respectivo Worker ao inicializar a instância do Worker como false.

Parâmetro da função de callback

$worker

Que é 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 subprocesso não executa reinício ao receber o sinal de reload
$worker->reloadable = false;
// Após o reload, informa a todos os clientes que o servidor executou o reload
$worker->onWorkerReload = function(Worker $worker)
{
    foreach($worker->connections as $connection)
    {
        $connection->send('worker reloading');
    }
};
// Executa o worker
Worker::runAll();

Dica: Além de usar uma função anônima como callback, você também pode consultar aqui para usar outras formas de callback.