reloadable

Описание:

bool Worker::$reloadable

При выполнении команды php start.php reload будет отправлен сигнал перезагрузки (SIGUSR1) всем дочерним процессам.

После получения сигнала перезагрузки дочерние процессы автоматически завершат свою работу, после чего основной процесс автоматически запустит новый процесс, что обычно используется для обновления бизнес-кода.

Когда переменная $reloadable у процесса установлена в false, то при получении сигнала перезагрузки будет срабатывать только onWorkerReload, и текущий процесс не будет перезапущен.

Например, в модели Gateway/Worker процесс gateway отвечает за поддержание соединения с клиентом, а процессы worker обрабатывают запросы. Установка свойства reloadable для процесса gateway в false позволит обновить бизнес-код без разрыва соединений с клиентами.

Пример

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Устанавливает, будет ли этот экземпляр перезапущен при получении сигнала reload
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker starting...\n";
};
// Запуск worker
Worker::runAll();