RQ需要Redis>=3.0.0
可以找到完整的文档here
支持RQ
如果您发现RQ有用,请考虑通过以下方式支持此项目Tidelift
快速入门
当然,首先要运行Redis服务器:
$ redis-server
要将作业放到队列中,您不必执行任何特殊操作,只需定义通常较长或阻塞的函数:
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队列:
from redis import Redis from rq import Queue queue = Queue(connection=Redis())
并将函数调用排队:
from my_module import count_words_at_url job = queue.enqueue(count_words_at_url, 'http://nvie.com')
安排作业也同样简单:
# Schedule job to run at 9:15, October 10th job = queue.enqueue_at(datetime(2019, 10, 8, 9, 15), say_hello)
# Schedule job to run in 10 seconds job = queue.enqueue_in(timedelta(seconds=10), say_hello)
还支持重试失败的作业:
from rq import Retry # Retry up to 3 times, failed job will be requeued immediately queue.enqueue(say_hello, retry=Retry(max=3))
# Retry up to 3 times, with configurable intervals between retries queue.enqueue(say_hello, retry=Retry(max=3, interval=[10, 30, 60]))
有关更完整的示例,请参阅docs但这才是最本质的
这位工人
要开始在后台执行入队的函数调用,请从项目的目录中启动一个工作器:
$ rq worker --with-scheduler *** Listening for work on default Got count_words_at_url('http://nvie.com') from default Job result = 818 *** Listening for work on default
事情就是这样
安装
只需使用以下命令即可安装最新发布的版本:
pip install rq
如果您想要最先进的版本(很可能已损坏),请使用以下命令:
pip install git+https://github.com/nvie/rq.git@master#egg=rq
相关项目
请查看下面这些可能对您的基于RQ的项目有用的报告
项目历史记录
这个项目的灵感来自于Celery,Resque和this snippet,并作为celery或其他基于amqp的排队实现的轻量级替代方案而创建。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。