reloadable

Descrição:

bool Worker::$reloadable

Ao executar php start.php reload, um sinal de reload (SIGUSR1) é enviado a todos os subprocessos.

Quando um subprocesso recebe o sinal de reload, ele sai automaticamente e o processo principal iniciará um novo processo automaticamente, o que geralmente é usado para atualizar o código do negócio.

Quando a variável $reloadable do processo for false, ao receber o sinal de reload, apenas onWorkerReload será acionado e o processo atual não será reiniciado.

Por exemplo, no modelo Gateway/Worker, o processo de gateway é responsável por manter as conexões dos clientes, enquanto os processos de worker são responsáveis por processar as requisições. Definindo a propriedade reloadable do processo de gateway como false, é possível atualizar o código do negócio sem desconectar as conexões dos clientes durante o reload.

Exemplo

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Define se esta instância reiniciará ao receber o sinal de reload
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker starting...\n";
};
// Executa o worker
Worker::runAll();