python ratelimit模块
1.项目地址
https://github.com/tomasbasham/ratelimit
2.项目简介
这个项目的开发背景是考虑一些服务的API 对于开发人员的访问频率会做一些限制,如果不小心超出了这个限制,服务可能会禁止开发人员访问。
ratelimit 提供的装饰器,可以控制被装饰的函数在某个周期内被调用的次数不超过一个阈值,尽管作者本意是限制那些访问web API 的函数的调用次数,
但你可以推而广之,所有不能频繁调用的函数都可以用这个装饰器来修饰。
3.使用示例
# call_api这个函数在15分钟内最多只能调用15次,超出后就会报错
from ratelimit import limits, sleep_and_retry
import requests
FIFTEEN_MINUTES = 900
@sleep_and_retry #如果不加该装饰器,则如果超过调用阈值直接报错,加上后会等待
@limits(calls=15, period=FIFTEEN_MINUTES)
def call_api(url):
response = requests.get(url)
if response.status_code != 200:
raise Exception('API response: {}'.format(response.status_code))
return response
先使用limits 对call_api 进行装饰,再用sleep_and_retry 进行二次装饰,一旦超出访问限制,程序不会结束,sleep_and_retry会根据当前访问周期剩余时间进行sleep ,然后再次调用。
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)