【Twitter4J】リトライ処理の設定方法
久々のプログラミング文法についての記事です^^
今回はTwitter4Jでのリトライ処理の設定方法についてです。
てぃーはツイッター分析では検索機能を使ってツイートを収集しています。
このときレートリミットを超えたというエラー以外に次のエラーが返ってくることがあります。

Connection reset
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=d35baff5 or
http://www.google.co.jp/search?q=12c94143
グーグルで調べるように書かれているのですが、調べてもよく分からずこのエラーの時はしばらくして手動でリトライしてしました。
それでうまく入っていたのですが手動ゆえにいつも見ていなければならず、原因も分からないので釈然としませんでした。
リトライ処理
今回その対処方法が分かったので紹介します。このエラーはコネクションの問題が原因です。
これにはリトライ処理を行うことで対処できます。
twitter4j.propertiesに次の2つを追記します。
例えば10秒ごとに3回リトライしたい場合は次のように書きます。
(参考:Twitter4J - 設定)
※http.retryCountはデフォルトでは0回なので注意が必要です。http.retryCount=3 (デフォルト値:0)
http.retryIntervalSecs=10 (デフォルト値:5)
これらを設定した結果、エラーが起こったときは自動でリトライしてくれるようになりました。
原因と対策が分かってうれしいかったです^^
他にも様々なプロパティが設定できるので必要な点を確認して設定を追加していきましょう!!
経緯
以下では参考として原因が分かった経緯について書いてみます。
2013年6月12日からTwitter APIが1.0から1.1に変わったのですが、何ら対策を取っていませんでした。(昼は仕事、夜は飲み会とアニメ鑑賞のため^^)
でも先週「2013ブロガーズフェスティバル」に参加してブログを書く理由が見つかったので、これではいけないと今日から家でのプログラミングを復活することにしました。
そして自前プログラムの検索機能の1.1化に成功しました。
このとき1.0時代から続くこのエラーについてツイッターでつぶやいたところ、Twitter4J開発者で株式会社サムライズム代表取締役社長の@yusukeさんより回答を頂きました。
@teapipin これはAPI以前にコネクションの問題ですねー
— 山本裕介 (@yusuke) October 27, 2013
@teapipin うーん、リトライするしかないかも http.retryCount を2とか3とかに設定してみてください。Twitter4Jがリトライしてくれます http://t.co/y38Ivb4AeR
— 山本裕介 (@yusuke) October 27, 2013
@teapipin デフォルトではリトライ回数0だった気がしますー
— 山本裕介 (@yusuke) October 27, 2013
さすがの対応でとてもうれしかったです!
これからもTwitter4Jを愛してやみません!!
↓この記事が参考になったら拍手、ツイート、いいね、はてブ、いずれかをお願いします。今後のブログ作りに役立てたいので。

- 関連記事
-
- ツイッター公式クライアントに追加された「コメント付きリツイート」は内部ではリツイートではなく引用ツイートだった! #Twitter4J (2015/05/25)
- 【Twitter4J】リトライ処理の設定方法 (2013/10/27)
- 新しく追加されたツイートの言語判定の精度が高すぎる!日本語はなんと100%!完璧! #Twitter4J (2013/04/29)
- 【Twitter4J】Streaming APIのsampleで各ツイートのlang(言語情報)を取得する方法 (2013/04/29)
- ある地点の近傍のツイートの取得方法!setGeoCodeや計算による半径の指定とGeohash(ジオハッシュ)による矩形の指定 #Twitter4J (2012/12/02)