优化定时器逻辑

This commit is contained in:
augushong
2024-10-06 17:07:59 +08:00
parent 384980b3d9
commit 83536d8309

View File

@@ -121,7 +121,15 @@ class TimerBase extends Command
$worker->timerRequestList = $this->requestList;
$worker->onWorkerStart = function () use ($worker, $host, $site_host, $output, $input) {
Timer::add(1, function () use ($worker, $host, $site_host, $output, $input) {
$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),
];
$http = new HttpClient($options);
Timer::add(1, function () use ($worker, $host, $site_host, $output, $input, $http) {
$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']);
@@ -147,14 +155,6 @@ class TimerBase extends Command
//
$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),
];
$http = new HttpClient($options);
$http->request($host . $request_item['target'], [
'headers' => [
'Host' => $site_host,
@@ -162,7 +162,7 @@ class TimerBase extends Command
],
'success' => function ($response) use ($request_item, $output) {
$request_item['is_running'] = false;
$output->writeln($response->getBody());
$output->writeln((string) $response->getBody());
},
'error' => function ($exception) use ($request_item, $output) {
$request_item['is_running'] = false;