Files
2025-10-12 20:08:55 +04:00

43 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import random
import time
import pika
# Конфигурационные параметры очереди и обменника
queue_name = 'очередь 1'
exchange = 'logs'
def callback(ch, method, properties, body):
"""
Функция обратного вызова, которая вызывается при получении сообщения
Args:
ch: канал связи с RabbitMQ
method: метаданные сообщения (доставка, routing key и т.д.)
properties: свойства сообщения (заголовки, тип контента и т.д.)
body: тело сообщения (полезная нагрузка)
"""
print(f" Consumer_1: сообщение получено {body.decode()}")
time.sleep(random.choice([2, 3]))
print(f" Consumer_1: сообщение обработано")
# Подтверждаем успешную обработку сообщения
# Это важно для надежной доставки - сообщение удаляется из очереди только после подтверждения
ch.basic_ack(delivery_tag=method.delivery_tag)
if __name__ == '__main__':
# Устанавливаем соединение с RabbitMQ сервером на localhost
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
# Создаем канал для взаимодействия с RabbitMQ
channel = connection.channel()
try:
channel.queue_declare(queue=queue_name)
channel.queue_bind(exchange=exchange, queue=queue_name)
channel.basic_consume(queue=queue_name, on_message_callback=callback)
channel.start_consuming()
except KeyboardInterrupt:
print("\nЗавершение работы потребителя...")
connection.close()