FOIA_Doc_Search / core /throttle.py
GodsDevProject's picture
Upload 20 files
5830944 verified
raw
history blame contribute delete
438 Bytes
import time
class AgencyThrottle:
def __init__(self, min_interval=1.0):
self.min_interval = min_interval
self.last_call = 0
self.healthy = True
async def wait(self):
delta = time.time() - self.last_call
if delta < self.min_interval:
await asyncio.sleep(self.min_interval - delta)
self.last_call = time.time()
def mark_unhealthy(self):
self.healthy = False