RabbitMQ 4 にPythonクライアント(pika)からメッセージを送信、受信する
以前も試したことがありますが、各種バージョンが上がっているので再度試してみます。RabbitMQにPythonクライアント(pika)からメッセージを送信、受信する
pikaのインストール
接続用のライブラリpikaをインストールします。
$ pip install pika
aptでインストールする場合
$ sudo apt install python3-pika
pipでは1.3.2、aptでは1.2.0がインストールされました。
送信サンプル
送信のサンプルです。
・send.py
- import pika
- # ユーザー名とパスワード
- credentials= pika.PlainCredentials('symfo', 'P@ssw0rd')
- # 接続パラメーター作成
- connect_param = pika.ConnectionParameters(
- host='192.168.11.202',
- credentials=credentials)
- # コネクション作成
- connection = pika.BlockingConnection(connect_param)
- channel = connection.channel()
- channel.queue_declare(queue='hello')
- channel.basic_publish(exchange='',
- routing_key='hello',
- body='Hello World!')
- print("[x] Sent 'Hello World!")
- connection.close()
ローカルホストアクセスの場合は必要ありませんが、
リモートサーバーに接続する場合はユーザーとパスワードの指定が必要です。
こちらで作成したユーザーを指定しました。
RabbitMQ 4 Web Interfaceの有効化とログインユーザーの作成
管理画面を見ると、キューに1つ追加されたことがわかります。
コマンドでも現在のキューの内容を確認できます。
$ sudo rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
hello 1
受信のサンプル
受信のサンプルはこうなりました。
・receive.py
- import pika, sys, os
- def main():
- # ユーザー名とパスワード
- credentials= pika.PlainCredentials('symfo', 'P@ssw0rd')
- # 接続パラメーター作成
- connect_param = pika.ConnectionParameters(
- host='192.168.11.202',
- credentials=credentials)
- connection = pika.BlockingConnection(connect_param)
- channel = connection.channel()
- channel.queue_declare(queue='hello')
- def callback(ch, method, properties, body):
- print(f" [x] Received {body}")
- channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
- print(' [*] Waiting for messages. To exit press CTRL+C')
- channel.start_consuming()
- if __name__ == '__main__':
- try:
- main()
- except KeyboardInterrupt:
- print('Interrupted')
- try:
- sys.exit(0)
- except SystemExit:
- os._exit(0)
実行するとメッセージの待受状態になります。
send.pyを実行すると、メッセージが表示されます。
$ python receive.py
[*] Waiting for messages. To exit press CTRL+C
[x] Received b'Hello World!'
- 関連記事
-
- RabbitMQ 4 + pika エラー発生時はキューに残す
- RabbitMQ 4 + pika メッセージの永続化
- RabbitMQ 4 にPythonクライアント(pika)からメッセージを送信、受信する
- RabbitMQ 4 Web Interfaceの有効化とログインユーザーの作成
- RabbitMQ 4 をUbuntu Server 24.04へインストール
コメント