rq 是Python的一个第三方模块,使用rq可以方便快速的实现Python的队列操作,实现多态电脑的分布式架构。其中 R是Redis的意思,Q是Queue的首字母,rq使用Redis和Queue实现分布式,分别实现了Master和Worker,通过Redis存储任务队列。
Ubuntu14.04 安装rq
假设已经安装了Python和pip,本文通过`pip来安装rq
$sudo pip install rq
安装Redis
rq模块使用redis保存队列信息,因此可以保证多台机器同时读取同一个队列,也就是多个`worker同时工作,这也就达到了我们的目的。在Ubuntu 下安装Redis比较简单,使用下面的命令即可,该命令除了安装 Redis外,也会好心地帮你安装了redis-cli。
$sudo apt-get install redis-server
安装完成后可以尝试启动一下Reids,检查是否安装成功。
$ redis-server
上面的命令会使用默认的设置启动Redis服务,如果你看到下面漂亮启动界面说明安装成功了。
不过还没完额,使用下面命令看看我们可以看到什么
$ netstat -an | grep 6379
结果:
因为Redis默认使用的端口是6379,该命令可以查看6379端口监听的ip ,可以看到 Redis默认绑定的是127.0.0.1,可以在/etc/redis/redis.conf中看到该设置。
Redis的默认配置绑定了127.0.0.1,注释掉bind 127.0.0.1即可。然后重启Redis。
$ sudo /etc/init.d/redis-server restart
再次执行netstat -an | grep 6379
可以看到改变了 ,Redis已经可以接受同一个局域网内的redis cli连接了。
安装rq-dashboard
rq-dashboard是一个监控rq执行状况的python库,它可以显示当前有哪些Queue,每个Queue有多少Job,以及有多少Worker处于工作状态,还显示了失败的Job。可以使用pip方便的安装Dashboard.
$sudo pip install rq-dashboard
安装成功后,使用下面的命令启动rq-dashboard
$rq-dashboard -u "redus://192.168.0.107:6379"
其中-u参数是需要使用的Redis连接地址,启动成功后可以看到下面的信息:
可以看出Rq dashboard的版本信息,以及运行的地址端口,也就是我们可以通过浏览器访问,默认的端口是9181,IP地址是启动rq-dashboard的机器ip,在同一局域网的电脑访问http://192.168.0.107:9181,其中192.168.0.107是启动rq-dashboard的电脑ip。
Rq-dashboard是一个很有用的工具,可以图形化的监控rq的工作状态,但是美中不足,不能控制worker的工作,不过相信应该很快就会支持这些功能了。
rq的使用
参考官方文档:http://python-rq.org/