一个简单的节流包
aio-throttle的Python项目详细描述
这个库的灵感来自于this book和这个实现https://github.com/vostok/throttling。在
特点:
- 设置容量(最大并行请求数)和队列(最大排队请求数)限制。在
- 每消费者限额。例如,不允许任何消费者使用超过70%的服务容量。在
- 按请求优先级。例如,不允许优先级最低的请求排队,或者现在允许具有正常优先级的请求使用超过服务容量的90%。在
示例:
fromaio_throttleimportThrottler,MaxFractionCapacityQuota,ThrottlePriority,ThrottleResultcapacity_limit=100queue_limit=200consumer_quotas=[MaxFractionCapacityQuota(0.7)]priority_quotas=[MaxFractionCapacityQuota(0.9,ThrottlePriority.NORMAL)]throttler=Throttler(capacity_limit,queue_limit,consumer_quotas,priority_quotas)consumer,priority="yet another consumer",ThrottlePriority.HIGHasyncwiththrottler.throttle(consumer=consumer,priority=priority)asresult:...# check if result is ThrottleResult.ACCEPTED or not
与aiohttp和prometheus_客户端集成的示例
^{pr2}$- 项目
标签: