RQ: python的简单任务队列

RQ(Redis Queue)是一个简单的任务队列Python包。使用它可以将任务抛到后台用worker执行。需要Redis数据库的支持。

首先需要运行Redis服务。

1
$ redis-server

要把任务压进队列中,除了定义一个方法之外不需要做任何其他的事情。

1
2
3
4
5
6
import requests
def count_words_at_url(url):
    """Just an example function that's called async."""
    resp = requests.get(url)
    return len(resp.text.split())

上面的代码用到了requests库,在之前的资源中已经提到了这个库。

然后,创建一个RQ队列:

1
2
3
from rq import Queue, use_connection
use_connection()
q = Queue()

接着调用之前定义的方法:

1
2
from my_module import count_words_at_url
result = q.enqueue(count_words_at_url, 'http://nvie.com')

这样,一个简单的队列任务就创建成功了,非常的简单与轻量。

GitHub主页:https://github.com/nvie/rq

Tagged: , ,

Comments are closed.