A distributed funnel middleware based on redis, management UI included.
You can install redis-funnel simply with pip:
pip install redis-funnel
Suppose you have a function named dummy runs across many processes, and executes very quickly:
import time
def dummy():
return time.time()
while True:
print dummy()you wants to restrict its execution speed with a limited qps, e.g. 100:
import time
from redis_funnel.distributed import qps_factory
qps = qps_factory(host="localhost", port=6379, db=0)
@qps("1000001", "test", 100)
def dummy():
return time.time()
while True:
print dummy()Warning: a redis server should be started first and listening on localhost:6379.
Also, if function dummy just runs in a single process, then you can just use qps decorator based on local memory, in which case you don't need a redis server running first:
import time
from redis_funnel.local import qps
@qps(100)
def dummy():
return time.time()
while True:
print dummy()redis-funnel is developed and maintained by fanwei.zeng (stayblank@gmail.com). It can be found here:
