RabbitMQの使用—Pythonドキュメント

提供:Dev Guides
Celery/docs/latest/getting-started/backends-and-brokers/rabbitmq
移動先:案内検索

RabbitMQの使用

インストールと構成

RabbitMQはデフォルトのブローカーであるため、使用するブローカーインスタンスのURLの場所以外に、追加の依存関係や初期構成は必要ありません。

broker_url = 'amqp://myuser:mypassword@localhost:5672/myvhost'

ブローカーのURLの説明と、Celeryで使用できるさまざまなブローカー構成オプションの完全なリストについては、ブローカー設定を参照してください。ユーザー名、パスワード、および仮想ホストの設定については、以下を参照してください。


RabbitMQサーバーのインストール

RabbitMQのWebサイトで RabbitMQのインストールを参照してください。 macOSについては、 macOSへのRabbitMQのインストールを参照してください。

ノート

rabbitmqctl をインストールして使用した後に nodedown エラーが発生した場合は、このブログ投稿が問題の原因を特定するのに役立ちます。

RabbitMQの設定

Celeryを使用するには、仮想ホストであるRabbitMQユーザーを作成し、そのユーザーがその仮想ホストにアクセスできるようにする必要があります。

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

上記のmyusermypasswordmyvhostを適切な値に置き換えてください。

アクセス制御の詳細については、RabbitMQ 管理ガイドを参照してください。


macOSへのRabbitMQのインストール

macOSにRabbitMQをインストールする最も簡単な方法は、macOS用の新しくて光沢のあるパッケージ管理システム Homebrew を使用することです。

まず、 Homebrewドキュメントが提供する1行のコマンドを使用してHomebrewをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

最後に、 brew を使用してRabbitMQをインストールできます。

$ brew install rabbitmq

brew を使用してRabbitMQをインストールした後、ブローカーを開始および停止できるようにするには、パスに次を追加する必要があります。シェルの起動ファイルに追加します(例:.bash_profileまたは.profile)。

PATH=$PATH:/usr/local/sbin

システムホスト名の構成

ランダムなホスト名を与えるDHCPサーバーを使用している場合は、ホスト名を永続的に構成する必要があります。 これは、RabbitMQがホスト名を使用してノードと通信するためです。

scutil コマンドを使用して、ホスト名を永続的に設定します。

$ sudo scutil --set HostName myhost.local

次に、そのホスト名を/etc/hostsに追加して、IPアドレスに解決できるようにします。

127.0.0.1       localhost myhost myhost.local

rabitmq-server を起動すると、 ratbitmqctl で確認されるように、rabbitノードは ratbit @ 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オプションを追加してバックグラウンドで実行することもできます(注:ダッシュは1つだけです)。

$ sudo rabbitmq-server -detached

killkill(1))を使用してRabbitMQサーバーを停止するのではなく、 rabbitmqctl コマンドを使用してください。

$ sudo rabbitmqctl stop

サーバーが実行されているときは、 RabbitMQのセットアップを読み続けることができます。