实现令牌桶算法的速率限制异步和线程安全的装饰器和上下文管理器。

limiter的Python项目详细描述


限制器

实现令牌桶算法的速率限制线程安全、异步装饰器和上下文管理器。

  • 线程安全,不需要计时器线程
  • 控制突发请求
  • 控制平均请求速率
  • 易于使用

安装

要求

  • Python3.7+

从pypi安装

pip3 install limiter

用法

fromasyncioimportsleepfromrequestsimportget,Responsefromlimiterimportget_limiter,limitREFRESH_RATE=2BURST_RATE=3limiter=get_limiter(rate=REFRESH_RATE,capacity=BURST_RATE)@limit(limiter)defget_page(url:str)->Response:returnget(url)@limit(limiter,consume=2)asyncdefdo_stuff():awaitsleep(0.1)defdo_stuff():# do stuffwithlimit(limiter,consume=1.5):# do expensive stuffpassasyncdefdo_stuff():# do stuffasyncwithlimit(limiter):# do expensive stuffpass@limit(limiter,bucket=b'other stuff')defdo_other_stuff():pass

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么