reloadable
说明:
bool Worker::$reloadable
عند تنفيذ php start.php reload، سيتم إرسال إشارة إعادة التحميل إلى جميع العمليات الفرعية (SIGUSR1).
ستقوم العمليات الفرعية بالخروج تلقائيًا عند استلام إشارة إعادة التحميل، ثم ستقوم العملية الرئيسية تلقائيًا بإطلاق عملية جديدة، وعادة ما يُستخدم ذلك لتحديث كود الأعمال.
عندما تكون قيمة $reloadable للعميلة false، ستؤدي إشارة إعادة التحميل إلى تفعيل onWorkerReload فقط، ولن يتم إعادة تشغيل العملية الحالية.
على سبيل المثال، في نموذج Gateway/Worker، تتولى عملية gateway الحفاظ على اتصال العملاء، بينما تتولى عملية worker معالجة الطلبات. إذا تم تعيين خاصية reloadable لعملية gateway على false، فيمكن تنفيذ إعادة التحميل وتحديث كود الأعمال دون قطع اتصال العملاء.
范例
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();