onWorkerReload

আবশ্যক (workerman >= 3.2.5)

বর্ণনা:

callback Worker::$onWorkerReload

এই বৈশিষ্ট্যটি খুব একটা ব্যবহৃত হয় না।

Worker যখন reload সংকেত পায় তখন কার্যকর হওয়ার জন্য কলব্যাক সেট করে।

onWorkerReload কলব্যাক ব্যবহার করে অনেক কাজ করা যায়, যেমন প্রক্রিয়া পুনরায় শুরু না করেই ব্যবসায়িক কনফিগারেশন ফাইল পুনরায় লোড করা।

বিঃদ্রঃ

সাব-প্রক্রিয়া reload সংকেত পাওয়ার পর স্বাভাবিকভাবে পুনরায় শুরু হয়, যাতে নতুন প্রক্রিয়া ব্যবসায়িক কোড পুনরায় লোড করে কোড আপডেট সম্পন্ন করতে পারে। অতএব, reload এর পর সাব-প্রক্রিয়া onWorkerReload কলব্যাক সম্পন্ন করার পর তৎক্ষণাৎ বাইরে চলে যাওয়া একটি স্বাভাবিক ঘটনা।

যদি reload সংকেত পাওয়ার পর কেবল onWorkerReload কার্যকর করতে চান এবং বাইরে যেতে না চান, তবে Worker উদাহরণটি সূচনা করার সময় সংশ্লিষ্ট Worker উদাহরণের reloadable বৈশিষ্ট্যটি 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::runAll();

টিপ: অ্যানোনিমাস ফাংশন কলব্যাক হিসাবে ব্যবহারের পাশাপাশি, অন্যান্য কলব্যাক লেখার পদ্ধতি এখানে দেখার জন্যও ব্যবহার করা যেতে পারে।