From 1181fb59da67731877caa5bde7a0641e9dbac6cf Mon Sep 17 00:00:00 2001 From: "as2252258@163.com" Date: Sat, 24 Apr 2021 20:17:55 +0800 Subject: [PATCH] modify --- HttpServer/Events/OnTask.php | 1 + System/Async.php | 58 ++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index 07ef8f07..25dd67dd 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -137,6 +137,7 @@ class OnTask extends Callback if (empty($serialize = swoole_unserialize($data))) { return null; } + $serialize = array_shift($serialize); if (!($serialize instanceof ITask)) { return null; } diff --git a/System/Async.php b/System/Async.php index c8ebffb2..380140bb 100644 --- a/System/Async.php +++ b/System/Async.php @@ -17,42 +17,42 @@ class Async extends Component { - private array $_absences = []; + private array $_absences = []; - /** - * @param string $name - * @param Task $handler - */ - public function addAsync(string $name, Task $handler) - { - $this->_absences[$name] = $handler; - } + /** + * @param string $name + * @param Task $handler + */ + public function addAsync(string $name, Task $handler) + { + $this->_absences[$name] = $handler; + } - /** - * @param string $name - * @param array $params - * @throws Exception - */ - public function dispatch(string $name, array $params = []) - { - $server = Snowflake::app()->getSwoole(); - if (!isset($server->setting['task_worker_num'])) { - return; - } + /** + * @param string $name + * @param array $params + * @throws Exception + */ + public function dispatch(string $name, array $params = []) + { + $server = Snowflake::app()->getSwoole(); + if (!isset($server->setting['task_worker_num'])) { + return; + } - if (!isset($this->_absences[$name])) { - return; - } + if (!isset($this->_absences[$name])) { + return; + } - /** @var Task $class */ - $class = $this->_absences[$name]; - $class->setParams($params); + /** @var Task $class */ + $class = $this->_absences[$name]; + $class->setParams($params); - $randWorkerId = random_int(0, $server->setting['task_worker_num'] - 1); + $randWorkerId = random_int(0, $server->setting['task_worker_num'] - 1); - $server->task(swoole_serialize($class), $randWorkerId); - } + $server->task(swoole_serialize([$class, 'onHandler']), $randWorkerId); + } }