diff --git a/kiri-task/AsyncTaskExecute.php b/kiri-task/AsyncTaskExecute.php index 26b0ce52..c9ab5924 100644 --- a/kiri-task/AsyncTaskExecute.php +++ b/kiri-task/AsyncTaskExecute.php @@ -6,6 +6,7 @@ use Exception; use Kiri; use Kiri\Abstracts\Component; use Kiri\Server\SwooleServerInterface; +use Swoole\Coroutine; /** @@ -18,7 +19,6 @@ class AsyncTaskExecute extends Component use TaskResolve; - /** * @param OnTaskInterface|string $handler * @param array $params @@ -27,13 +27,14 @@ class AsyncTaskExecute extends Component */ public function execute(OnTaskInterface|string $handler, array $params = [], int $workerId = -1) { + if (is_string($handler)) { + $handler = $this->handle($handler, $params); + } + $server = Kiri::getDi()->get(SwooleServerInterface::class); if ($workerId < 0 || $workerId > $server->setting['task_worker_num']) { $workerId = random_int(0, $server->setting['task_worker_num'] - 1); } - if (is_string($handler)) { - $handler = $this->handle($handler, $params); - } $server->task(serialize($handler), $workerId); }