reloadable
Açıklama:
bool Worker::$reloadable
php start.php reload komutu çalıştırıldığında, tüm alt süreçlere reload sinyali (SIGUSR1) gönderilir.
Alt süreç reload sinyalini aldığında otomatik olarak çıkacak ve ana süreç otomatik olarak yeni bir süreç başlatacaktır, genellikle iş kodunu güncellemek için kullanılır.
Eğer süreç $reloadable değeri false ise, reload sinyali alındığında yalnızca onWorkerReload tetiklenir ve mevcut süreç yeniden başlatılmaz.
Örneğin Gateway/Worker modelindeki gateway süreci, istemci bağlantılarını sürdürmekle sorumludur, worker süreci ise talepleri işler. Gateway sürecinin reloadable özelliğini false olarak ayarlarsanız, reload sırasında istemci bağlantılarını kesmeden iş kodunu güncelleyebilirsiniz.
Örnek
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
// Bu örneğin reload sinyali aldığında yeniden başlatılıp başlatılmayacağını ayarlama
$worker->reloadable = false;
$worker->onWorkerStart = function($worker)
{
echo "Worker başlatılıyor...\n";
};
// Worker'ı çalıştır
Worker::runAll();