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