reloadable

Giới thiệu:

bool Worker::$reloadable

Khi thực hiện php start.php reload, tín hiệu reload (SIGUSR1) sẽ được gửi đến tất cả các tiến trình con.

Khi tiến trình con nhận được tín hiệu reload, nó sẽ tự động thoát và tiến trình chính sẽ tự động khởi động một tiến trình mới, thường được sử dụng để cập nhật mã nguồn.

Khi biến $reloadable của tiến trình là false, sau khi nhận được tín hiệu reload, chỉ có thể kích hoạt onWorkerReload, và sẽ không khởi động lại tiến trình hiện tại.

Chẳng hạn, trong mô hình Gateway/Worker, tiến trình gateway chịu trách nhiệm duy trì kết nối của khách hàng, trong khi tiến trình worker chịu trách nhiệm xử lý yêu cầu.
Việc thiết lập thuộc tính reloadable của tiến trình gateway thành false sẽ cho phép cập nhật mã nguồn mà không cần ngắt kết nối khách hàng trong quá trình reload.

Ví dụ

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

$worker = new Worker('websocket://0.0.0.0:8484');
// Thiết lập xem liệu tiến trình này có khởi động lại khi nhận tín hiệu reload hay không
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
    echo "Worker starting...\n";
};
// Chạy worker
Worker::runAll();