Repository: incubator-streams Updated Branches: refs/heads/master 0e7fbcb6b -> 77f3e8a38
Changed handleTwitterError() to use RateLimitStatus for sleep/reset Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/77f3e8a3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/77f3e8a3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/77f3e8a3 Branch: refs/heads/master Commit: 77f3e8a38316312ebee74af143f5703fbab36541 Parents: 0e7fbcb Author: Joey Frazee <joey.fra...@icloud.com> Authored: Fri May 27 20:20:36 2016 -0500 Committer: Joey Frazee <joey.fra...@icloud.com> Committed: Fri May 27 20:22:04 2016 -0500 ---------------------------------------------------------------------- .../twitter/provider/TwitterErrorHandler.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/77f3e8a3/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterErrorHandler.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterErrorHandler.java b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterErrorHandler.java index fd063a1..51236ba 100644 --- a/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterErrorHandler.java +++ b/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterErrorHandler.java @@ -22,6 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import twitter4j.Twitter; import twitter4j.TwitterException; +import twitter4j.RateLimitStatus; /** * Handle expected and unexpected exceptions. @@ -35,7 +36,7 @@ public class TwitterErrorHandler @Deprecated public static int handleTwitterError(Twitter twitter, Exception exception) { - return handleTwitterError( twitter, null, exception); + return handleTwitterError(twitter, null, exception); } public static int handleTwitterError(Twitter twitter, Long id, Exception exception) @@ -45,12 +46,21 @@ public class TwitterErrorHandler TwitterException e = (TwitterException)exception; if(e.exceededRateLimitation()) { - LOGGER.warn("Rate Limit Exceeded"); + long millisUntilReset = retry; + + final RateLimitStatus rateLimitStatus = e.getRateLimitStatus(); + if (rateLimitStatus != null) { + millisUntilReset = rateLimitStatus.getSecondsUntilReset() * 1000; + } + + LOGGER.warn("Rate Limit Exceeded. Will retry in {} seconds...", millisUntilReset / 1000); + try { - Thread.sleep(retry); + Thread.sleep(millisUntilReset); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); } + return 1; } else if(e.isCausedByNetworkIssue())