Ich habe Probleme beim Senden von Batch-Anfragen für die Pagespeed-API. Von dem, was ich in meiner Google-Entwickler-Konsole gesehen habe, sollte ich 100 Anfragen pro Sekunde mit einem Maximum von 25.000 pro Tag haben. Allerdings stoße ich auf ein Problem, obwohl ich nur versuche, 50 pro Sekunde zu machen. Ich habe versucht, Timing in meine Ruby-Anwendung zu bringen und aus irgendeinem Grund ändert das den Fehler nicht. Ich bekomme immer noch den rateLimitExceeded Error von Google auf einer anständigen Menge der Ergebnisse. Ich mache das auf Arrays mit ~ 1000 URLs, wenn das wichtig ist.Stellen Sie sicher, dass die Batch-Anfrage für Google API einmal pro Sekunde erfolgt.
Hier ist meine Batch-Funktion, ich nenne es in einer Schleife von einer anderen Funktion, ich dachte, das könnte besser für das Timing funktionieren. Aber es schien nichts zu ändern.
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
Dies wird von
@urls.each_slice(50).to_a.each do |url_list|
send_request(url_list, options)
sleep(1)
end
Irgendwelche Ideen genannt, warum dies geschehen würde? Vielen Dank im Voraus