• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

rabbitmq

date: 2022-10-20 excerpt: rabbitmqの使い方

tag: rabbitmqmessage quepub/sub


rabbitmqの使い方

概要

  • 役割
    • メッセージブローカ
    • メッセージキュー
    • タスクキュー
  • GCPのcloud pub/subに相当する
    • 関数のcallbackで呼び出す点も似ている

インストール

ubuntu

$ sudo apt install rabbitmq-server

pythonによる例

ライブラリ

$ python3 -m pip install pika

pub

import pika

with pika.BlockingConnection(pika.ConnectionParameters('localhost')) as connection:
    channel = connection.channel()
    channel.queue_declare(queue='example_queue') # キューを作成
    channel.basic_publish(exchange='',
                          routing_key='example_queue',
                          body='Hello World!') # メッセージの送信
    print("Sent 'Hello World!'")

sub

import pika
import sys
import os

# サブスクリプションしてイベントを受け取ったとき、呼ばれる関数を定義
def callback(ch, method, properties, body):
    print("Received %r" % body)

def main():
    with pika.BlockingConnection(pika.URLParameters('amqp://localhost')) as connection:
        channel = connection.channel()
        channel.queue_declare(queue='example_queue')
        # メッセージを受け取ったときのコールバックを設定
        channel.basic_consume(queue='example_queue', on_message_callback=callback, auto_ack=True)
        # consumingを開始
        channel.start_consuming()

if __name__ == '__main__':
    main()

参考

  • RabbitMQのpythonのチュートリアル


rabbitmqmessage quepub/sub Share Tweet