diff --git a/config/jacked-server.php b/config/jacked-server.php index 03c11dd..6d4d1b0 100644 --- a/config/jacked-server.php +++ b/config/jacked-server.php @@ -12,6 +12,8 @@ 'host' => env('JACKED_SERVER_HOST', '0.0.0.0'), 'port' => env('JACKED_SERVER_PORT', 8080), 'server-type' => env('JACKED_SERVER_SERVER_TYPE', Server::POOL_MODE), + 'timeout' => env('JACKED_SERVER_TIMEOUT', 60), + 'readwrite-timeout' => env('JACKED_SERVER_READWRITE_TIMEOUT', 60), // ------------------------------------------------------------ // SSL diff --git a/src/Services/Server.php b/src/Services/Server.php index 239349d..3ea71d8 100644 --- a/src/Services/Server.php +++ b/src/Services/Server.php @@ -59,6 +59,8 @@ public function run(): void // reactor and workers 'reactor_num' => Util::getCPUNum() + 2, 'worker_num' => Util::getCPUNum() + 2, + // timeout + 'max_request_execution_time' => config('jacked-server.timeout', 60), ]), ($ssl ? [ 'ssl_cert_file' => config('jacked-server.ssl-cert-file'), 'ssl_key_file' => config('jacked-server.ssl-key-file'), @@ -401,10 +403,17 @@ private function executeRequest(array $requestOptions, string $content): JackedR $this->logger->info($this->logPrefix . 'Request Time: {time}', [ 'time' => Carbon::now()->format('Y-m-d H:i:s'), ]); - $result = (new Client( + $client = new Client( host: config('jacked-server.fastcgi.host', '127.0.0.1'), port: config('jacked-server.fastcgi.port', 9000), - ))->request($requestOptions, $content); + ); + $client->setConnectTimeout( + config('jacked-server.timeout', 60) * 1000, + ); + $client->setReadWriteTimeout( + config('jacked-server.readwrite-timeout', 60) * 1000, + ); + $result = ($client)->request($requestOptions, $content); } catch (Exception $e) { $error = $e->getMessage();