Pergunta

Estou trabalhando com um aplicativo Java Twitter (usando a API do Twitter4J). Eu criei o aplicativo e posso visualizar a linha do tempo dos usuários atuais, os perfis do usuário, etc.

No entanto, ao usar o aplicativo, parece exceder rapidamente as 150 solicitações de um limite de taxa de hora definido nos clientes do Twitter (sei que os desenvolvedores podem aumentar isso para 350 em determinadas contas, mas isso não resolveria para outros usuários).

Certamente isso não está afetando todos os clientes, nenhuma idéia de como contornar isso?

Alguém sabe o que conta como uma solicitação? Por exemplo, quando vejo o perfil de um usuário, carrego o objeto do usuário (Twitter4J) e depois recebo o nome da tela, nome de usuário, descrição do usuário, status do usuário etc. para colocar em um objeto JSON - essa seria uma única chamada para obter o objeto Ou vários seriam incluir todas as chamadas do usuário.get ...?

desde já, obrigado

Foi útil?

Solução

Você realmente precisa acompanhar qual é a contagem atual de solicitações ao lidar com o Twitter.

No entanto, o Twitter não parece desistir da contagem de 304 não modificada (pelo menos não foi da última vez que lidei com isso), portanto, verifique se não há algo que quebre seu uso normal do cache HTTP e sua solicitação prática por hora sobe.

Observe que o Twitter sofre de um bug em mod_gzip no Apache, onde a e-tag é mal formada em alterá-lo para refletir que o codificação de conteúdo é diferente do da entidade não dada (essa é a coisa certa a fazer, aí está apenas um bug na implementação). Por esse motivo, aceitar conteúdo gzipped do Twitter significa que nunca enviará um 304, o que aumenta a contagem de solicitações e, em muitos casos, prejudica os ganhos de eficiência do uso do GZIP.

Portanto, se você está aceitando GZIP (sua biblioteca da web pode fazê-lo por padrão, veja o que você pode ver com uma ferramenta como Fiddler, sou um cara .Net com apenas um pouco de conhecimento Java, respondendo ao nível de como o Twitter Lida com o HTTP para que eu não conheço os detalhes das bibliotecas da Web Java), tente desligar isso e veja se isso melhora as coisas.

Outras dicas

Quase todos os tipos de leitura dos servidores do Twitter (ou seja, qualquer coisa que chama o HTTP GET) conta como uma solicitação. Obtendo prazos do usuário, retweets, mensagens diretas, obtendo dados do usuário contam como uma solicitação cada. Praticamente a única chamada da API do Twitter que lê do servidor sem contar contra o seu limite de API é verificar para ver o status do limite da taxa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top