A distributed funnel system based on redis, management system included.
Project description
redis-funnel
A distributed funnel middleware based on redis, management ui included.
Installation
You can install redis-funnel simply with pip:
pip install redis-funnel
Getting Started
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()
Management UI
TBD
Author
redis-funnel is developed and maintained by fanwei.zeng (stayblank@gmail.com). It can be found here:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file redis-funnel-0.0.1.tar.gz.
File metadata
- Download URL: redis-funnel-0.0.1.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2e380794d1c3b7fb205c78da1a685f75c0716450ca44ee201c129e4a91b5dd4
|
|
| MD5 |
3df8794548b1a8616e0e9f1659c306f1
|
|
| BLAKE2b-256 |
13a183ff56f9730a137e27d9c1cffe2087b81c1d8ba59131591b12c31cd7cad1
|