set(1); try { LightCache::set('stop', 'OK'); } catch (Exception $e) { } server()->shutdown(); server()->stop(); } public static function reload($delay = 800) { Console::info(Console::setColor("Reloading server...", "gold")); usleep($delay * 1000); foreach ((LightCacheInside::get("wait_api", "wait_api") ?? []) as $k => $v) { if ($v["result"] === null && isset($v["coroutine"])) Co::resume($v["coroutine"]); } foreach (server()->connections as $v) { server()->close($v); } //DataProvider::saveBuffer(); Timer::clearAll(); server()->reload(); } public static function getModInstance($class) { if (!isset(ZMBuf::$instance[$class])) { //Console::debug("Class instance $class not exist, so I created it."); return ZMBuf::$instance[$class] = new $class(); } else { return ZMBuf::$instance[$class]; } } public static function sendActionToWorker($target_id, $action, $data) { server()->sendMessage(json_encode(["action" => $action, "data" => $data]), $target_id); } }