5

Ich versuche, eine Anwendung zu schreiben, die E-Mail-Konten für Tausende von Nutzern mithilfe der Google Directory API erstellt. Sie werden nacheinander erstellt, sind aber extrem langsam. Ich habe versucht, die Batch-Anfragen zu verwenden, die bis zu 1000 Anfragen gleichzeitig unterstützen sollen. Jedoch werden nur ungefähr 50 Benutzer erfolgreich erstellt und der Rest der Anfragen wirft 403 Fehler. Wenn ich stattdessen die Stapelgröße auf 40 ändern, schlagen nach dem ersten Stapel viele Anfragen mit 5xx-Fehlern fehl.Verwenden der Google Directory API zum Bereitstellen von Tausenden von Benutzern

Wenn die Batch-Anfragen immer noch durch die gleichen Ratenlimits begrenzt sind, scheinen die wertlos zu sein, da ich diese Anfragen einfach einzeln mit dieser langsamen Rate senden konnte. Gibt es einen besseren Weg, dies zu tun, oder sollte ich stattdessen etwas anderes tun?

+0

Gibt es in Ihrer Anwendung eine exponentielle Backoff-Aktion (https://developers.google.com/admin-sdk/directory/v1/limits), um die fehlgeschlagenen Vorgänge im Stapel erneut zu versuchen? https://developers.google.com/admin-sdk/directory/v1/limits –

Antwort

2

Das Batching der Anfragen wird sicherlich Netzwerk-Roundtrips speichern (was ziemlich teuer sein kann, wenn Sie Tausende von Benutzern verarbeiten müssen). Der Server muss die Anforderung jedoch immer noch einzeln ausführen, auch wenn sie stapelweise vorhanden ist. Werfen Sie einen Blick in die Dokumentation auf Admin SDK

https://developers.google.com/admin-sdk/directory/v1/guides/batch

Die besondere Note sagte:. „Ein Satz von n-Anfragen batched zusammen Ihre Nutzungsbeschränkung als n-Anfragen zählt zu, nicht als eine Anfrage der Stapelanfrage genommen wird auseinander in eine Reihe von Anfragen vor der Verarbeitung. "

+0

Auch mit exponentiellem Backoff wird ein großer quotaExceeded-Fehler empfangen. Da die Directory API 10 Kreationen/Sekunde erlauben kann, könnte ich einen Stapel mit 1.000 Kreationen senden, 100 Sekunden warten und einen weiteren senden. Aber bei der ersten Charge des Tages erhalte ich die Quotenfehler. Ich beendete die Begrenzung des Stapels auf jeweils 12 Kreationen: Dies funktioniert ohne quotaExceeded Fehler. –