카테고리 없음

RabbitMQ Produce, Consume with python

Soyeon0111 2021. 11. 29. 19:36
반응형

RabbitMQ를 사용하는 프로젝트를 시작하며 테스트 코드를 짜기 위해 RabbitMQ로 Produce, Consume 하는 코드를 실습해보았다. 

 

  • producer.py
import sys
import pika
 
queue = 'queuename'
message = ' '.join(sys.argv[1:])
 
# Connection 생성
connection = pika.BlockingConnection(pika.ConnectionParameters(
                host='10.120.1.99'
                , port=5672
                , virtual_host='/'
                , credentials=pika.PlainCredentials('guest', 'guest')   # username, password
            ))
 
# channel 생성
channel = connection.channel()
 
# Message Queue 생성
channel.queue_declare(queue=queue)
 
# Message 전송
channel.basic_publish(
    exchange=''     
    , routing_key=queue
    , body=message
)
print(" [x] Sent " + message )
 
# Connection 종료
connection.close()

 

  • consumer.py
import pika
 
queue = 'queuename'
 
# Connection 생성
connection  = pika.BlockingConnection(pika.URLParameters('amqp://guest:guest@10.120.1.99:5672/'))
 
# Channel 생성
channel = connection.channel()
 
# Message Queue 생성 (이미 생성되어 있다면 새로 생성하지 않음)
channel.queue_declare(queue=queue)
 
# callback 함수 정의
def callback(ch, method, properties, body):
	test_function(body) # 사용자 정의 함수
    ch.basic_ack( delivery_tag=method.delivery_tag )
 
# queue에서 consume하여 callback 실행
channel.basic_consume( queue, callback )

# Consume 시작
channel.start_consuming()

 

 

 

반응형