時間あたりのレート制限を秒あたりに変換

時間あたりで表現された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つの異なるレートが生まれます:

  1. バーストレート:サーバーが受け入れる最大瞬間レート
  2. 持続レート:長期的に超えることができない平均(5,000/時 = 1.39/秒)

キュー設計への影響

GitHub APIを利用するジョブキューでは:

  • 短期タスクにはバーストレートに基づいてワーカー同時実行数を設定
  • 長時間プロセスには持続レートに基づいてディスパッチレートを設定
  • 429レスポンス受信時に指数バックオフを実装
  • X-RateLimit-Remainingを監視して動的にディスパッチレートを調整

ユースケース

50のリポジトリにわたってコミットステータスを確認するCI/CDパイプラインを構築しています。各チェックには3回のAPIコールが必要です。時間あたりの制限を超えないように、1分あたりポーリングできるリポジトリの最大数を決定する必要があります。

試してみる — Rate Limit Calculator

フルツールを開く