Appearance
タイムアウト設計 ― 設定がなかったら
この章のキーワード
| 用語 | 意味 | なぜ重要か |
|---|---|---|
| タイムアウト | 一定時間内に応答がなければ接続を切断する設定 | リソース枯渇を防ぐ |
| リソース枯渇 | 接続やスレッドが全て使い尽くされた状態 | システム全体が停止する原因 |
| 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に聞く前に、自分の頭で考えてみましょう。
テキストを入力すると有効になります