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

คำแนะนำ: นอกจากการใช้ฟังก์ชันนิรนามเป็นการเรียกกลับแล้ว ยังสามารถดูที่นี่ เพื่อใช้รูปแบบการเรียกกลับอื่น ๆ ได้อีกด้วย。