From a4d8aebd76000cf992de71705a98b683e39b27e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 26 Feb 2021 20:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Events/OnFinish.php | 2 -- HttpServer/Events/OnTask.php | 3 +++ HttpServer/Events/OnWorkerStart.php | 3 +++ System/Abstracts/BaseApplication.php | 7 +++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/HttpServer/Events/OnFinish.php b/HttpServer/Events/OnFinish.php index 533af401..befa8ade 100644 --- a/HttpServer/Events/OnFinish.php +++ b/HttpServer/Events/OnFinish.php @@ -26,8 +26,6 @@ class OnFinish extends Callback $data = json_decode($data, true); $data['work_id'] = $task_id; $this->write(var_export($data, true), 'Task'); - - Snowflake::app()->decrement(); } } diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index ca0b9926..d7cd38c6 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -99,6 +99,9 @@ class OnTask extends Callback private function runTaskHandler($data): ?array { Snowflake::app()->increment(); + defer(function () { + Snowflake::app()->decrement(); + }); try { $serialize = $this->before($data); $params = $serialize->getParams(); diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index 0ab0ade9..8f7ca8f7 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -41,6 +41,9 @@ class OnWorkerStart extends Callback if (!empty($get_name) && !Snowflake::isMac()) { swoole_set_process_name($get_name); } + + Snowflake::app()->stateInit(); + putenv('workerId=' . ($worker_id >= $server->setting['worker_num'] ? 'Task' : 'Worker') . '.' . $worker_id); if ($worker_id >= $server->setting['worker_num']) { fire(Event::SERVER_TASK_START); diff --git a/System/Abstracts/BaseApplication.php b/System/Abstracts/BaseApplication.php index e48d9bae..c34b8298 100644 --- a/System/Abstracts/BaseApplication.php +++ b/System/Abstracts/BaseApplication.php @@ -93,6 +93,13 @@ abstract class BaseApplication extends Service } + public function stateInit() + { + $this->taskNumber = 0; + $this->state = 'SWOOLE_WORKER_IDLE'; + } + + public function decrement() { $this->taskNumber -= 1;