$register); Server::setResource('dbForConsole', function (Cache $cache, Registry $register) { $pools = $register->get('pools'); $dbAdapter = $pools ->get('console') ->pop() ->getResource() ; $database = new Database($dbAdapter, $cache); $database->setNamespace('console'); return $database; }, ['cache', 'register']); Server::setResource('dbForProject', function (Cache $cache, Registry $register, Message $message, Database $dbForConsole) { $args = $message->getPayload()['value'] ?? []; $project = new Document($args['project'] ?? []); if ($project->isEmpty() || $project->getId() === 'console') { return $dbForConsole; } $pools = $register->get('pools'); $dbAdapter = $pools ->get($project->getAttribute('database')) ->pop() ->getResource() ; $database = new Database($dbAdapter, $cache); $database->setNamespace('_' . $project->getInternalId()); return $database; }, ['cache', 'register', 'message', 'dbForConsole']); Server::setResource('cache', function (Registry $register) { $pools = $register->get('pools'); $list = Config::getParam('pools-cache', []); $adapters = []; foreach ($list as $value) { $adapters[] = $pools ->get($value) ->pop() ->getResource() ; } return new Cache(new Sharding($adapters)); }, ['register']); App::setResource('logger', function ($register) { return $register->get('logger'); }, ['register']); $pools = $register->get('pools'); $connection = $pools->get('queue')->pop()->getResource(); $workerNumber = swoole_cpu_num() * intval(App::getEnv('_APP_WORKER_PER_CORE', 6)); $workerNumber = 1; Runtime::enableCoroutine(SWOOLE_HOOK_ALL);