สามารถรีโหลด

คำอธิบาย:

bool Worker::$reloadable

เมื่อโปรแกรมทำงาน php start.php reload จะส่งสัญญาณ reload (SIGUSR1) ไปยังกระบวนการย่อยทั้งหมด

กระบวนการย่อยที่ได้รับสัญญาณ reload จะออกโดยอัตโนมัติและกระบวนการหลักจะสร้างกระบวนการใหม่ขึ้นมา โดยทั่วไปใช้สำหรับการอับเดตโค้ดทางธุรกิจ

เมื่อคุณตั้งค่า $reloadable ของกระบวนการเป็นเท็จ หลังรับสัญญาณ reload จะเรียกใช้เฉพาะ onWorkerReload และจะไม่รีสตาร์ทกระบวนการปัจจุบัน

ตัวอย่างเช่น ในโมเดล Gateway/Worker การตั้งค่า reloadable ของกระบวนการ gateway เป็นเท็จ จะทำให้สามารถอับเดตโค้ดทางธุรกิจโดยไม่ต้องตัดสายการเชื่อมต่อของไคลเอ็นต์

ตัวอย่าง

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();