onWorkerReload
ต้องการ(workerman >= 3.2.5)
คำอธิบาย:
callback Worker::$onWorkerReload
คุณสมบัตินี้ไม่ค่อยได้ใช้บ่อยนัก
ตั้งค่าการเรียกกลับที่จะดำเนินการเมื่อ Worker เว็บไซต์ได้รับสัญญาณ reload
คุณสามารถใช้การเรียกกลับ onWorkerReload เพื่อทำหลายสิ่ง เช่น โหลดไฟล์การกำหนดค่าธุรกิจใหม่โดยไม่ต้องรีสตาร์ทกระบวนการ
คำเตือน:
การกระทำเริ่มต้นของกระบวนการย่อยเมื่อได้รับสัญญาณ reload คือการออกและเริ่มใหม่ เพื่อให้กระบวนการใหม่โหลดโค้ดธุรกิจและเสร็จสิ้นการอัปเดตโค้ด ดังนั้นหลังจาก reload กระบวนการย่อยจะออกทันทีหลังจากดำเนินการเรียกกลับ onWorkerReload เป็นเรื่องปกติ
หากคุณต้องการให้กระบวนการย่อยดำเนินการ onWorkerReload หลังจากได้รับสัญญาณ reload โดยไม่ต้องออก คุณสามารถตั้งค่าคุณสมบัติ reloadable ของอินสแตนซ์ Worker ที่สร้างขึ้นให้เป็น false ในระหว่างการสร้างอินสแตนซ์
พารามิเตอร์ของฟังก์ชันเรียกกลับ
$worker
หมายถึงวัตถุ Worker
ตัวอย่าง
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
// ตั้งค่า reloadable เป็น false หมายถึงกระบวนการย่อยจะไม่ทำการรีสตาร์ทเมื่อได้รับสัญญาณ reload
$worker->reloadable = false;
// ทำการแจ้งเตือนทั้งหมดว่าเซิร์ฟเวอร์ได้ดำเนินการ reload
$worker->onWorkerReload = function(Worker $worker)
{
foreach($worker->connections as $connection)
{
$connection->send('worker reloading');
}
};
// รัน worker
Worker::runAll();
คำแนะนำ: นอกจากการใช้ฟังก์ชันนิรนามเป็นการเรียกกลับแล้ว ยังสามารถดูที่นี่ เพื่อใช้รูปแบบการเรียกกลับอื่น ๆ ได้อีกด้วย。