почему Twitter не может обработать несколько запросов за 1 час? - PullRequest
0 голосов
/ 27 августа 2010

Я занимаюсь разработкой веб-приложения (Business) на Java (GWT 2.0.1), куда приходит количество пользователей и делает запрос к твиттеру. Около 1000 пользователей (более того) делают запрос в Twitter через мое веб-приложение. Для этого я использовал twitter4j-2.0.9.jar

Есть ли способ ... чтобы я мог избежать проблемы "Превышен предел скорости" означает количество (1000>) запросов в час.

Я получил следующее исключение, когда через свой веб-сайт я сделал 30+ запросов в течение 1 часа

twitter4j.TwitterException: 400: запрос недействителен. Прилагаемое сообщение об ошибке объяснит, почему. Этот код состояния будет возвращен во время ограничения скорости.

< ?xml version="1.0" encoding="UTF-8"?>

< hash>

  < request>/statuses/followers.xml< /request>

  < error> Rate limit exceeded. Clients may not make more than 30 requests per hour.< /error>

< /hash>

at twitter4j.http.HttpClient.httpRequest(HttpClient.java:469)
at twitter4j.http.HttpClient.get(HttpClient.java:412)
at twitter4j.Twitter.get(Twitter.java:276)
at twitter4j.Twitter.get(Twitter.java:228)
at twitter4j.Twitter.getFollowersStatuses(Twitter.java:1363)
at twitter4j.Twitter.getFollowers(Twitter.java:1350)
at com.wissen.supergroupers.server.impl.TwitterServiceImpl.getTwitterFollowers(TwitterServiceImpl.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Есть ли способ ... чтобы я мог избежать проблемы "Превышен предел скорости" означает количество (1000>) запросов в час.

Пожалуйста, предоставьте хорошее решение !!!

Надежда на лучшее сотрудничество с вашей стороны

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 27 августа 2010

Попробуйте попасть в белый список.Из документации по ограничению скорости :

Белый список

Некоторые приложения считают, что ограничение по умолчанию оказывается недостаточным.При таких обстоятельствах мы предлагаем белый список.Можно внести в белый список как учетные записи пользователей, так и IP-адреса.Каждому объекту из белого списка, будь то учетная запись или IP-адрес, разрешено 20 000 запросов в час. Если вы разрабатываете приложение и хотите, чтобы вас рассматривали в качестве белого списка, вы заполняете форму запроса белого списка.Мы просматриваем каждое приложение из белого списка, и иногда принятие решения может занять неделю.После того, как мы приняли решение, мы отправим по электронной почте адрес, связанный с учетной записью Twitter, которая подала заявку.

1 голос
/ 27 августа 2010

Вы можете прочитать их документацию .Твиттер делает это специально, чтобы избежать потерь ресурсов (на самом деле у них уже достаточно проблем с поддержанием работы сайта).Я полагаю, что связанный документ содержит ваши точные вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...