Sie könnten die Adapter Pattern verwenden, um die Anforderungen zu verpacken. So etwas wie das:
class RequestLimiter:
def __init__(self):
self.count = 0
def get(self, *args, **kwargs):
if self.count == 30:
time.sleep(60)
self.count = 0
return requests.get(*args, **kwargs)
else:
self.count += 1
requests.get(*args, **kwargs)
def main():
# If this is through your whole program,
# you might want to make this global- be careful with that!
r = RequestLimiter()
r.get(url, args)
Je nach Ihren Anforderungen, möchten Sie vielleicht etwas davon ändern. Zum Beispiel, wie es codiert ist, wird Ihre Anzahl erhöht, unabhängig davon, ob Ihr get
erfolgreich ist oder fehlschlägt. Das kann oder darf nicht sein, was Sie wollen. Wenn Sie sich entscheiden, eine globale Instanz dieser Klasse zu erstellen, müssen Sie sich Gedanken über den gleichzeitigen Zugriff auf die Variable count
machen (wenn Sie die Parallelität verwenden).
'time.sleep (60)' ... –