В моем проекте я использую службу API и ожидаю сообщения через RabbitMQ.
Я использую поведенческую среду Python для целей тестирования.
Я подключаю RabbitMQ.Создание очереди, привязка очереди с exchange.
import pika
import logging
#logging.basicConfig(logging.INFO)
logging.basicConfig(level=logging.INFO)
#binding_keys = "TestTopic"
#_queue_name = None
#channel = None
class Rabbitmq(object):
EXCHANGE_TYPE = "topic"
BINDING_KEYS = "TestTopic"
queue_state=None
queue_empty=None
queue_name=None
def create_connection(test):
logging.info("Started create_connection method")
global queue_empty, queue_state,queue_name
credentials = pika.PlainCredentials("USERNAME", "USERNAME")
parameters = pika.ConnectionParameters(host="HOST", port=PORT, credentials=credentials,virtual_host="virtual host")
# establish connection
connection = pika.BlockingConnection(parameters)
global channel
channel = connection.channel()
channel.confirm_delivery()
# declare exchange
channel.exchange_declare(exchange="EXCHANGE_NAME",exchange_type="topic",durable=True)
#declare queue
result = channel.queue_declare(queue='QUEUE_NAME')
queue_name = result.method.queue
channel.queue_bind(exchange="EXCHANGE_NAME",
queue="QUEUE_NAME",
routing_key=Rabbitmq.BINDING_KEYS)
logging.info("Ending create_connection method")
def getMessage(self):
logging.info("Starting getMessage")
global channel,queue_state,queue_empty,queue_name
logging.info("before callback method")
def callback(ch, method, properties, body):
print("listening [x] %r:%r" % (method.routing_key, body))
logging.info(" [x] %r:%r" % (method.routing_key, body))
channel.basic_consume(callback,queue="test_result_pdp_queue")
logging.info("After basic_consume method")
#logging.info(channel)
channel.start_consuming()
logging.info("After start_consuming")
Перед началом выполнения теста я вызываю метод create_connection, который установит соединение, объявляет exchange & queue.
Затем я запускаю службу APIи ожидание сообщения через RabbitMQ, где я вызываю функцию потребления для потребления сообщения.Но я не получаю никаких сообщений.Любая помощь будет оценена.