你正在阅读 Celery 3.1 的文档。开发版本文档见: 此处.

使用 RabbitMQ

安装与配置

RabbitMQ 是默认的中间人,所以除了需要你要使用的中间人实例的 URL 位置, 它并不需要任何额外的依赖或起始配置:

>>> BROKER_URL = 'amqp://guest:guest@localhost:5672//'

Celery 中间人 URL 的描述和完整的中间人可用配置选项列表见 Broker Settings

安装 RabbitMQ 服务器

见 RabbitMQ 网站上的 安装 RabbitMQ 。Mac OS X 用户 ,则请见 在 OS X 上安装 RabbitMQ

注解

如果你在安装和使用 rabbitmqctl 后遇到了 nodedown 错 误,那么这篇文章可以帮助你找到错误的来源:

设置 RabbitMQ

要使用 Celery,我们需要创建一个 RabbitMQ 用户、一个虚拟主机,并且 允许这个用户访问这个虚拟主机:

$ sudo rabbitmqctl add_user myuser mypassword
$ sudo rabbitmqctl add_vhost myvhost
$ sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"

关于 访问控制 的更多信息见 RabbitMQ 的 管理员指南

在 OS X 上安装 RabbitMQ

在 Snow Leopard 上安装 RabbitMQ 最简单的方式就是 Homebrew ——OS X 上的一款 新颖别致,光彩动人的包管理系统。

在本例中,我们将把 Homebrew 安装到 /lol ,但你可以选择任意位置, 如果你想,甚至可以是你的用户根目录,Homebrew 的强大之处之一就是可以重定址。

Homebrew 实际上是一个 git 仓库,所以要安装 Homebrew,你首先需要安装 git。 从 http://code.google.com/p/git-osx-installer/downloads/list?can=3 下载并安装 磁盘映像。

当安装好 git 后,你终于可以克隆这个仓库到 /lol

$ git clone git://github.com/mxcl/homebrew /lol

Brew 包含一个简单的工具称为 brew ,用于安装、移除和查询包。为了使 用它,你需要先把它添加到 PATH 中。可以把下面的这行添加到你的 ~/.profile 末尾来实现:

export PATH="/lol/bin:/lol/sbin:$PATH"

保存并重新加载:

$ source ~/.profile

你终于可以用 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

$ sudo rabbitmqctl status
Status of node rabbit@myhost ...
[{running_applications,[{rabbit,"RabbitMQ","1.7.1"},
                    {mnesia,"MNESIA  CXC 138 12","4.4.12"},
                    {os_mon,"CPO  CXC 138 46","2.2.4"},
                    {sasl,"SASL  CXC 138 11","2.1.8"},
                    {stdlib,"ERTS  CXC 138 10","1.16.4"},
                    {kernel,"ERTS  CXC 138 10","2.13.4"}]},
{nodes,[rabbit@myhost]},
{running_nodes,[rabbit@myhost]}]
...done.

如果你的 DHCP 分配的主机名以 IP 地址开头这就尤其重要(例如 23.10.112.31.comcast.net ),因为 RabbitMQ 会试图访问 rabbit@23 , 而这是一个非法的主机名。

启动/停止 RabbitMQ 服务器

启动服务器:

$ sudo rabbitmq-server

你也可以添加 -detached 属性来让它在后台运行(注意:只有一 个破折号):

$ sudo rabbitmq-server -detached

永远不要用 kill 停止 RabbitMQ 服务器,而是应该用 rabbitmqctl 命令:

$ sudo rabbitmqctl stop

当服务器正常运行后,你可以继续阅读 When the server is running, you can continue reading 设置 RabbitMQ

上一个主题

中间人

下一个主题

Using Redis

本页