切断とは何ですか?
ストリーミング接続が切断される理由
- 認証エラー(誤ったトークンの使用や不適切な認証方式の使用など)。
- X 側でストリーミングサーバーが再起動された場合。これは通常、コードのデプロイに関連しており、想定の上で設計に織り込む必要があります。
- クライアントがストリームで配信される Post の量に追いついていない、または読み取りが遅すぎる場合。すべてのストリーミング接続にはクライアントに送信するメッセージのキューがあり、このキューが時間の経過とともに大きくなりすぎると、接続は閉じられます。
- アカウントが日次/月次の Post のクォータを超過した場合。
- 冗長なアクティブ接続が多すぎる場合。
- クライアントが突然読み取りを停止した場合。ストリームから読み取られる Post の速度が急激に低下すると、接続は閉じられます。
- サーバーとクライアント間のネットワーク上の問題の可能性。
- 一時的なサーバー側の問題、計画メンテナンスやアップデート。(ステータスページを確認してください)
一般的な切断時のエラーには、次のようなものがあります:
切断を見越した対処と再接続
- 新規コンテンツとハートビートの受信が止まったことをコードで検出する必要があります。
- その場合は、再接続ロジックを起動してください。一部のクライアントや言語では読み取りタイムアウトを指定でき、20秒に設定できます。
- サービスはこれらの切断を検知し、できるだけ早く再接続する必要があります。
- TCP/IP レベルのネットワークエラーは線形バックオフにします。これらの問題は一般的に一時的で、すぐに解消される傾向があります。試行のたびに待機時間を250msずつ増やし、最大16秒までとします。
- 再接続が適切な HTTP エラーは指数バックオフにします。最初は5秒待機し、試行のたびに倍にして最大320秒までとします。
- HTTP 429 エラー(Rate limit exceeded)は指数バックオフにします。最初は1分待機し、試行のたびに倍にします。HTTP 429 を受信するたびに、アカウントのレート制限が解除されるまでに待機すべき時間が増える点に注意してください。
失われたデータの復旧
レート制限と使用状況
- x-rate-limit-limit は、15分間のウィンドウ内にクライアントが実行できる割り当てリクエスト数を示します。
- x-rate-limit-remaining は、15分間のウィンドウ内でこれまでに行われたリクエスト数を示します。
- x-rate-limit-reset は、15分間のウィンドウが再開され、その時点で x-rate-limit-remaining が0にリセットされる時刻を示す UNIX タイムスタンプです。