From e4fe7b421bb6fa2fa2847bf677c6496667fc7c90 Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 4 Oct 2024 23:51:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=9A=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E5=99=A8=E7=9A=84=E9=87=8D=E5=A4=8D=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/base/common/command/TimerBase.php | 29 ++++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/extend/base/common/command/TimerBase.php b/extend/base/common/command/TimerBase.php index 1e3391b..d03e1d4 100644 --- a/extend/base/common/command/TimerBase.php +++ b/extend/base/common/command/TimerBase.php @@ -105,6 +105,11 @@ class TimerBase extends Command public function runParallel() { + // 重新构造命令行参数,以便兼容workerman的命令 + global $argv; + $argv = []; + array_unshift($argv, 'think', 'start'); + $host = $this->host; $site_host = $this->siteHost; $output = $this->output; @@ -119,10 +124,16 @@ class TimerBase extends Command Timer::add(1, function () use ($worker, $host, $site_host, $output, $input) { $request_list = $worker->timerRequestList; foreach ($request_list as $request_item) { + $output->writeln(date('Y-m-d H:i:s') . ': build site request async:' . $request_item['target']); if (!isset($request_item['is_running'])) { $request_item['is_running'] = false; } + if ($request_item['is_running']) { + $output->writeln('进行中,跳过'); + continue; + } + if (!isset($request_item['last_run_time'])) { $request_item['last_run_time'] = 0; } @@ -134,15 +145,13 @@ class TimerBase extends Command $request_item['is_running'] = true; $request_item['last_run_time'] = time(); - $output->writeln(date('Y-m-d H:i:s') . ': build site request async:' . $request_item['target']); - // $options = [ - 'max_conn_per_addr' => Config::get('timer.max_conn_per_addr', 1000), - 'keepalive_timeout' => Config::get('timer.keepalive_timeout', 86400), - 'connect_timeout' => Config::get('timer.connect_timeout', 86400), - 'timeout' => Config::get('timer.timeout', 86400), + 'max_conn_per_addr' => Config::get('timer.max_conn_per_addr', 1000), + 'keepalive_timeout' => Config::get('timer.keepalive_timeout', 86400), + 'connect_timeout' => Config::get('timer.connect_timeout', 86400), + 'timeout' => Config::get('timer.timeout', 86400), ]; $http = new HttpClient($options); @@ -151,13 +160,13 @@ class TimerBase extends Command 'Host' => $site_host, 'Accept' => 'application/json,text/plain', ], - 'success' => function ($response) use ($request_item) { + 'success' => function ($response) use ($request_item, $output) { $request_item['is_running'] = false; - echo $response->getBody(); + $output->writeln($response->getBody()); }, - 'error' => function ($exception) use ($request_item) { + 'error' => function ($exception) use ($request_item, $output) { $request_item['is_running'] = false; - echo $exception; + $output->writeln($exception); }, ]); }