RabbitMQの使用—Pythonドキュメント
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 ".*" ".*" ".*"
上記のmyuser
、mypassword
、myvhost
を適切な値に置き換えてください。
アクセス制御の詳細については、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
kill ( kill(1))を使用してRabbitMQサーバーを停止するのではなく、 rabbitmqctl コマンドを使用してください。
$ sudo rabbitmqctl stop
サーバーが実行されているときは、 RabbitMQのセットアップを読み続けることができます。