This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Control function call speed ,support network mode by redis

Project Description
# ControlSpeed
这项目是用来控制函数调用的频率, 不仅支持本地的同步线程模式, 而且支持分布式模式.
[更多开发描述,请点击链接](http://xiaorui.cc)

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

装饰器使用方法
```
from controlspeed import ControlSpeed
@ControlSpeed(max_calls=10, period=1.0)
def do_something():
pass
```

with关键词控制上下文
```
from controlspeed import ControlSpeed
rate = ControlSpeed(max_calls=10, period=1.0)
for i in range(100):
with rate:
do_something()
```

支持回调函数的控速
```
from controlspeed import ControlSpeed
import time
def limited(until):
duration = int(round(until - time.time()))
print 'Speed limited, sleeping for %d seconds' % duration

rate = ControlSpeed(max_calls=2, period=3, callback=limited)
for i in range(3):
with rate:
print i
```

在2.1加入了分布式限频, 借助于redis实现.
```
import redis
redis_conn = redis.StrictRedis()
key = 'xiaorui.cc'

@ControlSpeedNetwork(redis_conn, key, max_calls=10, period=3.0)
def do_something(args):
print args
time.sleep(0.1)

for i in xrange(20):
do_something(i)
```
Release History

Release History

This version
History Node

2.3

History Node

2.1

History Node

1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
controlspeed-2.3.tar.gz (3.6 kB) Copy SHA256 Checksum SHA256 Source Nov 16, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting