Skip to content

タイムアウト設計 ― 設定がなかったら

📖この章のキーワード
用語意味なぜ重要か
タイムアウト一定時間内に応答がなければ接続を切断する設定リソース枯渇を防ぐ
リソース枯渇接続やスレッドが全て使い尽くされた状態システム全体が停止する原因
Http::timeout()Laravel HTTP クライアントのタイムアウト設定秒数を指定する

Phase 1: 観察

LIBOT の外部 Webhook 転送処理:

php
// WebhookController.php(外部転送部分)
// Label: trade-off

Http::timeout(5)->retry(2, 500)->send('POST', $url, [
    'headers' => [
        'Content-Type' => 'application/json',
        'X-Line-Signature' => $signature,
    ],
    'body' => $content,
]);

timeout(5) — 5 秒以内にレスポンスがなければ諦める。


Phase 2: 判断

AI禁止ゾーン
  • timeout(5)削除 したら、何が起きますか?
  • タイムアウトを 1 秒 にしたら? 60 秒 にしたら?
  • 全ての外部 API 呼び出しに 同じタイムアウト値 を設定すべきですか?

AIに聞く前に、自分の頭で考えてみましょう。

テキストを入力すると有効になります