使用 Python RQ 的 Python 执行后台任务

2014-11-24 12:49:15 · 作者: · 浏览: 2

RQ (Redis Queue) 可以让 Heroku 平台上的 Python 应用轻松的执行后台任务,RQ 使用 Redis 作为队列存储,因此要使用 RQ 之前必须配置应用程序然后启动并运行一个工作进程。


可使用 pip 命令来安装 RQ 以及其依赖的库



接下来,记录新的修改到应用中的 requirements.txt 文件:



现在你已经准备好创建 worker 工作进程,创建名为 worker.py 的文件,该模块将侦听队列中的任务并在接收到时处理它们。



使用下面的命令来运行 workder 进程:



为了将作业放到 Redis 队列中,我们在外部模块中编写一个堵塞函数 utils.py:



然后在你的应用中可通过如下代码来创建 RQ 队列:



而将作业放到队列的方法如下:



该堵塞方法将自动的在后端的 workder 进程中执行。


为了发布新的 worker 系统到 Heroku 中,你需要在 Procfile 中添加运行命令:



然后添加 Redis To Go 扩展:



一旦做完上述步骤,可根据需要来设定 worker 的数量:



通过 -p 参数来查看 worker 进程的输出信息



也可以手工调用: