Pygithub: Drosselung/Backoff für die Unterstützung von Ratenbegrenzungen für PyGitHub

Erstellt am 3. Okt. 2019  ·  4Kommentare  ·  Quelle: PyGithub/PyGithub

Es gibt keine elegante Möglichkeit, die Drosselung für Github-API-Aufrufe über PyGitHub zu implementieren. Der beste Weg, um sicherzustellen, dass meine App die Drosselungsgrenzen nicht erreicht, besteht darin, vor jedem Aufruf zu überprüfen, die Anzahl der Aufrufe an die APIs zu zählen und dann kontinuierlich zu überprüfen, ob diese Grenze erreicht ist oder nicht - während die Ratenbegrenzungen regelmäßig aktualisiert werden. Es ist nicht einfach, eine Wrapper-Klasse zu implementieren oder Dekoratoren/Deskriptoren auf die Aufrufe anzuwenden, da es verschiedene Klassen (wie GitHub, Repository, Releases usw.) gibt, die einen Aufruf an den API-Endpunkt senden können. Es scheint, dass die Implementierung dieser Funktion in PyGitHub, um Aufrufe zu drosseln/ratelimitieren/warten, der beste Ansatz wäre, IMO, da jeder Aufruf der REST-API nachverfolgt werden kann. Wird eine solche Funktion gefördert? Macht es Sinn, an einem Pull-Request zu arbeiten?

stale

Hilfreichster Kommentar

PyGithub ist großartig, vielen Dank!

Gibt es eine bequeme Möglichkeit, PyGithub anzuweisen, keine Ausnahme bei Überschreitung der Ratengrenze auszulösen, sondern den Vorgang zurückzusetzen und erneut zu versuchen? Andernfalls muss ich das tun und jeden meiner Anrufe abbrechen, was möglich ist, sich aber falsch anfühlt. Das bin ich, der dann eine Framework-/Bibliotheksfunktion ausführt, die besser zum eigentlichen Framework/zur Bibliothek passt, in diesem Fall PyGithub, dann macht jeder Benutzer dasselbe in seinem Code.

Alle 4 Kommentare

jeder?

Siehe auch #1233 für übermäßige Anfragen.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.

PyGithub ist großartig, vielen Dank!

Gibt es eine bequeme Möglichkeit, PyGithub anzuweisen, keine Ausnahme bei Überschreitung der Ratengrenze auszulösen, sondern den Vorgang zurückzusetzen und erneut zu versuchen? Andernfalls muss ich das tun und jeden meiner Anrufe abbrechen, was möglich ist, sich aber falsch anfühlt. Das bin ich, der dann eine Framework-/Bibliotheksfunktion ausführt, die besser zum eigentlichen Framework/zur Bibliothek passt, in diesem Fall PyGithub, dann macht jeder Benutzer dasselbe in seinem Code.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen