MyQEE\Server\Register\WorkerMain::onStart PHP Метод

onStart() публичный Метод

public onStart ( )
    public function onStart()
    {
        parent::onStart();
        if ($this->server->worker_id === 0 && in_array($this->server->setting['dispatch_mode'], [1, 3])) {
            # 如果 dispatch_mode 是 1, 3 模式, 开启定期清理数据
            swoole_timer_tick(1000 * 60, function () {
                foreach (Host::$table as $key => $item) {
                    $info = $this->server->connection_info($item['fd'], $item['from_id']);
                    if ($item['removed']) {
                        if ($info) {
                            $this->server->close($item['fd'], $item['from_id']);
                        }
                        # 移除内存数据
                        Host::$table->del($key);
                    } elseif (false === $info) {
                        # 连接已经关闭
                        Host::$table->del($key);
                        # 推送服务器
                        RPC::factory($item['fd'], $item['from_id'])->trigger('server.remove', $item->group, $item->id);
                        Server::$instance->debug("remove closed client#{$item['group']}.{$item['id']}: {$item['ip']}:{$item['port']}");
                    }
                }
            });
        } else {
            swoole_timer_tick(1000 * 60, function () {
                # 清理移除掉的 server
                $time = time();
                foreach (Host::$table as $key => $item) {
                    if ($item['removed'] && $item['removed'] - $time > 10) {
                        # 清理数据
                        Host::$table->del($key);
                    }
                }
            });
        }
    }