onWorkerReload

متطلبات (workerman >= 3.2.5)

الوصف:

callback Worker::$onWorkerReload

هذه الميزة ليست مستخدمة بشكل شائع.

تعيين رد الاتصال الذي يتم تنفيذه بعد استلام Worker لسيغنال reload.

يمكن استخدام رد الاتصال onWorkerReload للقيام بالعديد من الأشياء، مثل إعادة تحميل ملفات تكوين الأعمال دون الحاجة إلى إعادة تشغيل العملية.

تنبيه

السلوك الافتراضي للعمليات الفرعية عند استلام سيغنال 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، إبلاغ جميع العملاء بأن الخادم قام بتنفيذ reload
$worker->onWorkerReload = function(Worker $worker)
{
    foreach($worker->connections as $connection)
    {
        $connection->send('worker reloading');
    }
};
// تشغيل الworker
Worker::runAll();

تنبيه: بجانب استخدام دالة مجهولة كاستجابة، يمكنك أيضًا الرجوع إلى هنا لاستخدام طرق رد الاتصال الأخرى.