之前調用一個三方的 WEB API,大量的請求超時,導致 PHP 進程被占用完。整個網站一直報 504。
其中一個優化措施就是對三方 API 調用設置超時時間。
use GuzzleHttp\Client; $client = new Client(); $url = 'https://www.sunzhongwei.com'; try { $res = $client->request('GET', $url, ['timeout' => 1.5]); $res = $res->getBody(); } catch(\Throwable $e) { Log::info('Fail to call api‘); }
timeout 默認值是 0, 即一直等待,這非常危險。所以這里改成了 1.5 秒。