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