Example #1
0
 /**
  * Worker进程启动时触发并划分普通worker进程和task进程
  *
  * @param \swoole_server $server
  * @param int            $worker_id
  *
  * @throws \DIServer\Container\NotRegistedException
  * @throws \DIServer\Container\NotTypeOfInstanceException
  */
 public function OnWorkerStart(\swoole_server $server, $worker_id)
 {
     //各个进程的$server对象不是同一个,要重置。
     Container::Unregister(\swoole_server::class);
     Container::RegisterClassByInstance(\swoole_server::class, $server);
     $reloadConfig = (include Application::GetFrameworkPath() . '/Registry/ServerReload.php');
     Container::AutoRegistry($reloadConfig);
     if ($server->taskworker) {
         $this->taskerServer = Container::GetInstance(ITaskWorkerServer::class);
         $this->taskerServer->OnTaskWorkerStart($server, $worker_id);
     } else {
         $this->workerServer = Container::GetInstance(IWorkerServer::class);
         $this->workerServer->OnWorkerStart($server, $worker_id);
     }
 }
Example #2
0
 /**
  * Worker进程启动时触发并划分普通worker进程和task进程
  *
  * @param \swoole_server $server
  * @param int            $worker_id
  *
  * @throws \DIServer\Container\NotRegistedException
  * @throws \DIServer\Container\NotTypeOfInstanceException
  */
 public function OnWorkerStart(\swoole_server $server, $worker_id)
 {
     //清理opcache
     opcache_reset();
     //各个进程的$server对象不是同一个,要重置。
     Container::Unregister(\swoole_server::class);
     Container::RegisterClassByInstance(\swoole_server::class, $server);
     Application::AutoRegistry('CommonWorker.php', true);
     if ($server->taskworker) {
         $this->taskerServer = Container::GetInstance(ITaskWorkerServer::class);
         Application::AutoRegistry('TaskWorker.php', true);
         Event::Listen('OnTaskWorkerStart', [&$server, &$worker_id]);
         $this->taskerServer->OnTaskWorkerStart($server, $worker_id);
     } else {
         $this->workerServer = Container::GetInstance(IWorkerServer::class);
         Application::AutoRegistry('Worker.php', true);
         Event::Listen('OnWorkerStart', [&$server, &$worker_id]);
         $this->workerServer->OnWorkerStart($server, $worker_id);
     }
 }