rq/README.md

56 lines
1.6 KiB
Markdown
Raw Normal View History

2011-11-14 11:10:59 +00:00
# WARNING: DON'T USE THIS IN PRODUCTION (yet)
# rq — Simple job queues for Python
**rq** is an attempt at a lightweight Python job queue, using Redis as the
queue provider.
2011-11-14 14:15:05 +00:00
# Putting jobs on queues
Some terminology before we get started:
* *Queues* are queues, in the computer science way. Technically, they are
2011-11-14 17:35:41 +00:00
Redis lists where work is `rpush`'ed on and `lpop`'ed from.
2011-11-14 14:15:05 +00:00
* *Jobs* are a definitions of work that can be carried out by a different
2011-11-14 17:40:12 +00:00
processes. Technically, they are just plain old Python function calls, with
2011-11-14 14:15:05 +00:00
arguments and return values and the like.
2011-11-14 17:40:12 +00:00
* *Workers* are processes that pop off work from queues and start
executing them. They report back return values or exceptions.
2011-11-14 14:15:05 +00:00
To put work on queues, tag a Python function call as a job, like so:
@job('default')
def slow_fib(n):
if n <= 1:
return 1
else:
return slow_fib(n-1) + slow_fib(n-2)
You can still call the function synchronously:
from fib import slow_fib
slow_fib(4)
You can find an example implementation in the `examples/` directory. To run
it, open three terminal windows and run the following commands in them:
1. `python example/run_worker.py`
1. `python example/run_worker.py`
1. `python example/run_example.py`
This starts two workers and starts crunching the fibonacci calculations in the
background, while the script shows the crunched data updates every second.
2011-11-14 11:10:59 +00:00
### Installation
Simply use the following command to install the latest released version:
pip install rq
If you want the cutting edge version (that may well be broken), use this:
2011-11-14 17:40:12 +00:00
pip install -e git+git@github.com:nvie/rq.git@master#egg=rq
2011-11-14 11:10:59 +00:00