2016-07-27 1 views
0

Je rencontre des problèmes lors de l'envoi de demandes par lots pour l'API pagespeed. D'après ce que j'ai vu dans ma console de développeurs google, je devrais avoir 100 requêtes par seconde avec un maximum de 25 000 par jour. Cependant, je rencontre un problème même en essayant de faire 50 par seconde. J'ai essayé d'imposer le timing dans mon application de rubis et pour une raison quelconque cela ne change pas l'erreur. Je reçois toujours l'erreur rateLimitExceeded de google sur un montant décent des résultats. Je fais cela sur des tableaux contenant ~ 1000 urls si cela est important.La demande de traitement par lots pour l'API Google se produit une fois par seconde

Voici ma fonction de traitement par lots, je l'appelle dans une boucle d'une autre fonction, je pensais que cela pourrait fonctionner mieux pour le chronométrage. Mais cela ne semblait pas changer quoi que ce soit.

def send_request(urls) 
    @psservice.batch do |ps| 
    urls.each do |url| 
     ps.run_pagespeed(url) do |result, err| 
     err.nil? ? @data.push(result) : @errors.push("#{url}, #{err}") 
     end 
    end 
    end 
end 

C'est appelé à partir

@urls.each_slice(50).to_a.each do |url_list| 
    send_request(url_list, options) 
    sleep(1) 
end 

Toutes les idées pourquoi cela se produirait? Merci d'avance

Répondre

0

J'ai mal interprété le quota de Google Pagespeed - 100 requêtes/100 secondes. Donc, une demande par seconde. Il semble que plus je vérifie que c'est en fait 1 demande/seconde. J'ai toujours du mal à essayer d'exécuter 100 requêtes puis d'attendre 100 secondes.