事象発生してログ取れてた。
警告: Tweet失敗. TE= 403:The request is understood, but it has been refused. An accompanying error me ssage will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-u pdate-api-dm-and-following). message - User is over daily status update limit. code - 185 Relevant discussions can be found on the Internet at: http://www.google.co.jp/search?q=b2b52c28 or http://www.google.co.jp/search?q=12a1f4ad TwitterException{exceptionCode=[b2b52c28-12a1f4ad], statusCode=403, message=User is over daily status update limit., code=185, retryAfter=-1, rateLimitStatus=null, version=3.0.5} at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:162) at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98) at twitter4j.TwitterImpl.post(TwitterImpl.java:1965) at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:275) at nekora.jms.JMSQueueReceive.tweet(JMSQueueReceive.java:446) at nekora.jms.JMSQueueReceive.onMessage(JMSQueueReceive.java:364) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1 28, 2014 12:42:55 午前 nekora.jms.JMSQueueReceive tweet 警告: te.isCausedByNetworkIssue()=false 1 28, 2014 12:42:55 午前 nekora.jms.JMSQueueReceive tweet 警告: te.exceededRateLimitation()=false
「User is over daily status update limit」で失敗の時はte.exceededRateLimitation()がtrueになるかと思いきや、ならないっぽいので、Exceptionのメッセージ文字列で判定するのが良かろう。あるいはcode=185が取れるメソッドがありそうならそれで。
しかしここ2.5週間と、今後2〜3週間は毎日午前様なので修正は日曜だな。もう寝る。
コメント