Python -API -Rate Begrenzung - So begrenzen die API -Aufrufe weltweit
Posted: 02 May 2025, 06:05
Ich versuche, die API -Anrufe in meinem Code einzuschränken. Ich habe bereits eine schöne Python -Bibliothek ratelimiter == 1.0.2.post0
https://pypi.python.org/pypi/Ratelimiter
Diese Bibliothek kann den Rate nur im lokalen Spielraum einschränken. d.h.) in Funktion und Schleifen < /p>
und y , in denen zwei API -Aufrufe getätigt werden.
wird also direkt nach der Ausführung von X aufgerufen, ohne eine weitere Sekunde zu warten. Und dies wird gegen die Einschränkung der eine Zeit pro Sekunde verletzen.>
https://pypi.python.org/pypi/Ratelimiter
Diese Bibliothek kann den Rate nur im lokalen Spielraum einschränken. d.h.) in Funktion und Schleifen < /p>
Code: Select all
# Decorator
@RateLimiter(max_calls=10, period=1)
def do_something():
pass
# Context Manager
rate_limiter = RateLimiter(max_calls=10, period=1)
for i in range(100):
with rate_limiter:
do_something()
< /code>
Da ich mehrere Funktionen habe, die API -Aufrufe an verschiedenen Stellen tätigen, möchte ich die API -Aufrufe in global < /strong> Scope einschränken. Und nehmen Sie an, ich habe Funktionen x
Code: Select all
@rate(...)
def x():
...
@rate(...)
def y():
...
< /code>
Durch Dekorieren der Funktionen mit dem Limiter < /code> kann ich die Rate gegen die beiden Funktionen einschränken. Y