diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index e8d528af..94a7ab31 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -77,10 +77,7 @@ class OnTask extends Callback if (empty($task->data)) { return $task->finish('null data'); } - $app = Snowflake::app(); - $app->increment(); $finish = $this->runTaskHandler($task->data); - $app->decrement(); if (!$finish) { $finish = []; } @@ -100,7 +97,8 @@ class OnTask extends Callback */ private function runTaskHandler($data): ?array { - try { + $app = Snowflake::app()->increment(); + try { $serialize = $this->before($data); $params = $serialize->getParams(); if (is_object($params)) { @@ -114,12 +112,14 @@ class OnTask extends Callback $finish['status'] = 'error'; $finish['info'] = $this->format($exception); $this->error($exception, 'Task'); - } finally { - $event = Snowflake::app()->getEvent(); - $event->trigger(Event::SYSTEM_RESOURCE_CLEAN); - Timer::clearAll(); } - return $finish; + $app->decrement(); + + $event = Snowflake::app()->getEvent(); + $event->trigger(Event::SYSTEM_RESOURCE_CLEAN); + Timer::clearAll(); + + return $finish; } /** diff --git a/System/Abstracts/BaseApplication.php b/System/Abstracts/BaseApplication.php index c34b8298..cff3468c 100644 --- a/System/Abstracts/BaseApplication.php +++ b/System/Abstracts/BaseApplication.php @@ -119,6 +119,8 @@ abstract class BaseApplication extends Service } else { $this->state = 'SWOOLE_WORKER_BUSY'; } + + return $this; }