前言,什么是函数限制频率? 控频的应用场景又是什么? 

在python下控频可以理解为函数的调用频率,原因可能因为多方面. 频率一般是一定时间内,调用的次数,如果超过我们规定的次数,或者报错,或者堵塞接口。
那他的应用场景又是什么?  比如同事写了一个支持socks级别的tcp代理,因为写的很粗糙,我们这边用的时候,需要限制频率… 这个场景是因为服务端性能不靠谱引起的. 当然有些朋友说直接在服务端开发限频不就行了,但这样会造成一个问题,本来proxy就在阻塞中,你还过去请求…
还有一个场景,是爬虫的应用,有些网站会对于单个ip进行频率限制,那么直接套用这个控频方案就可以了.. 前提你是python语言的项目.

python实现分布式限频文章后期有修改,请到原文链接中查看更新. http://xiaorui.cc/?p=2391

http://xiaorui.cc/2015/11/27/%E4%BD%BF%E7%94%A8redis%E5%AE%9E%E7%8E%B0%E5%88%86%E5%B8%83%E5%BC%8F%E7%9A%84%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E9%99%90%E9%A2%91/

这个频率限制项目是我利用空闲时间开发的,已经在各个系统上应用了.  有兴趣的朋友可以关注 使用这项目.

代码已经推送到github和python pypi源里.

https://github.com/rfyiamcool/ControlSpeed

https://pypi.python.org/pypi/controlspeed


正是介绍开始. 

项目名,ControlSpeed

目的,这项目是用来控制函数调用的频率, 不仅支持本地的同步线程模式, 而且支持分布式模式,在2.3版本我已经加入多进程multiprocessing环境支持.

ControlSpeed(本地版)还不适合多线程池的场景, 当然你可以用ControlSpeedNetwork分布式版解决. 缺点是每次访问都会有一次网络io消耗.  

version 2.3:
1. Add multiprocessing mode support

Usage:
装饰器使用方法

with关键词控制频率,适合更加细腻的控频.

支持回调函数的控速


在2.1加入了分布式限频, 借助于redis实现.


对于python函数控频就说到这里了…  如果ControlSpeed有bug或者有新需求,call  me !



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品

发表评论