時間あたりのレート制限を秒あたりに変換
時間あたりで表現されたAPIレート制限を秒あたりの等価値に変換します。時間ウィンドウにおける持続レートとバーストレートの違いを学びます。
Unit Conversion
詳細な説明
時間あたりから秒あたりへの変換
GitHub(5,000/時間)のようなAPIや多くのエンタープライズAPIは、時間あたりで制限を表現します。秒あたりに変換することで、リトライロジック、キュープロセッサ、ワーカープールの設計に役立ちます。
基本式
秒あたりリクエスト = 時間あたりリミット / 3,600
例:5,000リクエスト/時間(GitHub)
| 単位 | 値 |
|---|---|
| 時間あたり | 5,000 |
| 分あたり | 83.33 |
| 秒あたり | 1.39 |
| 日あたり | 120,000 |
バースト問題
単純な変換は持続的な平均レートを示します。しかし、ほとんどの時間ウィンドウベースのレートリミッターは、最初の数秒で5,000リクエスト全てを送信することを実際に許可します。制限は、任意の60分間ウィンドウ内で5,000を超えることのみを防止します。
これにより2つの異なるレートが生まれます:
- バーストレート:サーバーが受け入れる最大瞬間レート
- 持続レート:長期的に超えることができない平均(5,000/時 = 1.39/秒)
キュー設計への影響
GitHub APIを利用するジョブキューでは:
- 短期タスクにはバーストレートに基づいてワーカー同時実行数を設定
- 長時間プロセスには持続レートに基づいてディスパッチレートを設定
- 429レスポンス受信時に指数バックオフを実装
X-RateLimit-Remainingを監視して動的にディスパッチレートを調整
ユースケース
50のリポジトリにわたってコミットステータスを確認するCI/CDパイプラインを構築しています。各チェックには3回のAPIコールが必要です。時間あたりの制限を超えないように、1分あたりポーリングできるリポジトリの最大数を決定する必要があります。