一、安装与配置
RabbitMQ是默认的中间人,所以除了需要你使用的中间人实例的URL未知,它不需要任何额外的依赖或起始配置:
>>> BROKER_URL = 'amp://guset:guest@localhost:5672//'
Celery中间人URL的描述和完整的中间人可用配置选项列表见[Broker Settings][http://docs.jinkan.org/docs/celery/configuration.html#conf-broker-settings]。
二、安装RabbitMQ服务器
设置RabbitMQ
要使用Celery,我们需要创建一个RabbitMQ用户,一个虚拟主机,并且允许这个用户访问这个虚拟主机:
$ sudo rabbitmqctl add_user myuser mypasssword
$ sudo rabbitmqctl add_vhost myvhost
$ sudo rabbitmqlct set_permissions -p myvhost myuser ".*" ".*" ".*"
关于[访问控制][http://docs.jinkan.org/docs/celery/getting-started/brokers/accesscontrol]的更多信息见RabbitMQ的[管理员指南][http://docs.jinkan.org/docs/celery/getting-started/brokers/AdminGuide]。
在OX X 上安装RabbitMQ
我们使用brew安装RabbitMQ:
$ brew install rabbitmq
配置系统的主机名
如果你使用了DHCP服务器,它会给你分配一个随机的主机名,那么你需要设置一个永久的主机名。这是因为RabbitMQ通过主机名来与节点通信。
使用**scutil*命令来永久修改主机名:
$ sudo scutil --set HostName myhost.local
然后把主机名加入到/etc/hosts
中,这样才能解析到IP地址:
127.0.0.1 localhost myhost myhost.local
如果你启用了RabbitMQ服务器,你的Rabbit节点现在应被rabbitmqctl识别为rabbit@myhost。
$ rabbitmqctl status
Status of node rabbit@localhost ...
[{pid,35351},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.7.8"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.8"},
{rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.7.8"},
{rabbitmq_amqp1_0,"AMQP 1.0 support for RabbitMQ","3.7.8"},
{rabbitmq_stomp,"RabbitMQ STOMP plugin","3.7.8"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.8"},
{rabbit,"RabbitMQ","3.7.8"},
{mnesia,"MNESIA CXC 138 12","4.15.5"},
{amqp10_common,
"Modules shared by rabbitmq-amqp1.0 and rabbitmq-amqp1.0-client",
"3.7.8"},
{amqp_client,"RabbitMQ AMQP Client","3.7.8"},
{rabbit_common,
"Modules shared by rabbitmq-server and rabbitmq-erlang-client",
"3.7.8"},
如果你的DHCP分配的主机名以IP地址开头这就尤其重要(例如23.10.112.31.comcast.net),因为RabbitMQ会试图访问rabbit@23,而这是一个非法的主机名。
启动/停止RabbitMQ服务器
启动服务器:
$ sudo rabbitmq-server
添加-detached属性来让它在后台运行:
$ sudo rabbitmq-server -detached
永远不要用kill停止RabbitMQ服务器,而是应该用rabbitmqctl命令:
$ sudo rabbitmq-server stop