4

ここtweetstreamに示すように、gem を使用して Twitter API に接続しています。正常に動作しますが、ストリームの処理方法を変更しているときにストリームを停止して再起動すると、2 時間ほどかけて約 5 回再起動した後、ストリームが更新を停止し、30 秒ごとにイベントが発生し続けます。 .on_reconnect

これは、これがレート制限をトリガーするため、または新しい接続を開始する前に以前の接続が強制終了されないためだと考えています。これを行う適切な方法はありますか?

4

1 に答える 1

2

問題の原因については正確にはわかりませんが、これが私がやったことです:

  • ライブラリを更新します (バンドルの更新)。githubの問題に関する議論は、基礎となるEventMachine gemに接続の問題を引き起こすバグがあった可能性があることを暗示しているように見えましたが、これは最新バージョンで修正されました.

  • システム時刻が現実的であることを確認してください。少なくとも 1 回は、インターネット クロックと同期していないシステム時間がリアルタイムから 30 分以上ずれており、リクエスト トークンが無効 (期限切れ、または将来署名済み) として拒否されていました。

  • ストリーム リーダーをDaemonでラップします。デーモンにオプションを与えて{:monitor => true}、ジョブが停止した場合にジョブを再開するようにします。これは、私のサーバーで週に数回発生し、タイムアウト エラーが発生します (API 側のサービスの中断、または自分のインターネット接続のバグを推測しています)。そもそも死ぬべきではないので、これは応急処置のようなものですが、この問題を私の優先リストのかなり下に押し込んでいるので、私は現在それについて心配していません.

于 2012-12-17T07:24:40.530 に答える