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.