Зависимости
- Rabbitmq.5.0)
- Python 3.6.
- Пика
В этой статье мы узнаем, как публиковать и потреблять сообщения с приоритетом в rabbitmq. Мы будем использовать язык Python Language и Pika для AMQP.
Здесь мы объявляем очередь с X-MAX-приоритет
аргумент Этот аргумент является целочисленным числом от 0 до 255. Он описывает, что очередь может принимать сообщения с максимальным приоритетом, равным этому номеру.
import pika queue_name = 'priority-queue' max_priority = 10 # connect and get channel parameters = pika.ConnectionParameters('localhost') connection = pika.BlockingConnection(parameters) channel = connection.channel() # declare queue with max priority channel.queue_declare( queue=queue_name, arguments={"x-max-priority": max_priority} )
Публиковать сообщения с разными приоритетами.
def publish(message, priority) message = message + str(priority) channel.basic_publish( properties=pika.BasicProperties(priority=priority), exchange='', routing_key=queue_name, body=message ) # message with priority 0 message = 'message-with-priority-' publish(message, 0) # message with priority 5 publish(message, 5)
Теперь потребляйте сообщения из очереди и найдите, что сообщение с более высоким приоритетом будет сначала потреблять, даже если он был опубликован позже.
method_frame, header_frame, body = channel.basic_get(queue_name) print(body) # message-with-priority-5 method_frame, header_frame, body = channel.basic_get(queue_name) print(body) # message-with-priority-0
Исходный код: rabbitmq-приоритет-очередь -пример
Оригинал: “https://dev.to/hardiksondagar/how-to-publish-message-with-priority-in-rabbitmq-1jd6”