2016-07-27 3 views
0

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

Antwort

0

Ich habe die Quote für Google Pagespeed falsch gelesen - es sind 100 Anfragen/100 Sekunden. Also eine Anfrage eine Sekunde. Es scheint, je mehr ich überprüfe, dass es tatsächlich 1 Anfrage/Sekunde ist. Ich habe immer noch Probleme, 100 Anfragen auszuführen und dann 100 Sekunden zu warten.

Verwandte Themen