Twitter4J(twitter4j-core:4.0.6)を使用して友人やフォロワーをクロールするアプリケーションをJava 8で構築しています。私はグラフの構造にデータを取り込みますが、レート制限をかなり速く打つことを期待していますので、使い終わったエンドポイントだけがスリープ状態になるような方法でアプリケーションを構築しようとしています。 Twitter4j RateLimitStatusEventにどのエンドポイントを指定するか
は、私は他のアプリ、スレッドやインスタンスはまた、要求の同じプールを使い果たして、私はスリープフラグをonRateLimitStatus(RateLimitStatusEvent event)
を持っていると
onRateLimitReached(RateLimitStatusEvent event)
制御するRateLimitStatusListenerインターフェイスを使用しようとしています、残りのコールの正確な数があることを確認してくださいするにはループ。
ただし、「/ friends/ids」、「/ followers/ids」、「/ users/lookup」など、どのエンドポイントにアクセスするのかわからないというのは、RateLimitStatusEventが。
私はレート制限を調べてローカルカウントを保持することを検討しましたが、複数のインスタンス、同時に情報にアクセスする他のアプリケーションなどがある場合、レート制限はローカルカウントが達成される前に達します注意してください。私が完成したらアプリケーションを公開するかもしれませんし、同時に複数のユーザーがいるかもしれません。
誰かがTwitter4Jでこれを行う良い方法を知っていますか、自分自身をロールバックする必要がありますか?
この回答をお持ちですか?それは私が推測する良い出発点かもしれないhttps://stackoverflow.com/a/45199642/2183174 – kadir
@kadirあなたは絶対に正しいです!それは素晴らしい出発点です!私は結果に、その特定のリクエストの返されたレート制限を含むTwitterResultインターフェースの実装への参照が含まれていることに気づいていませんでした。ロジックを少し再設計し、そのアプローチが満足のいく方法で動作するかどうかを確認します。 – Canis