server->setting['worker_num']) { $workerId = random_int($this->server->setting['worker_num'] + 1, $this->server->setting['task_worker_num']); } if (is_string($handler)) { $handler = $this->handle($handler, $params); } $this->server->task(serialize($handler), $workerId); } /** * @param $handler * @param $params * @return object * @throws \ReflectionException * @throws Exception */ private function handle($handler, $params): object { $implements = $this->container->getReflect($handler); if (!in_array(OnTaskInterface::class, $implements->getInterfaceNames())) { throw new Exception('Task must instance ' . OnTaskInterface::class); } return $implements->newInstanceArgs($params); } }