Очереди с приоритетами, как следует из их названия, предоставляют приоритет более важным сообщениям для потребления.

Важные моменты для очередей с приоритетами в RabbitMQ:

  • Очереди с приоритетами начинают работать только в случае недостаточного числа потребителей и невозможности своевременного потребления.
  • Очереди с приоритетами поддерживаются только после версии RabbitMQ 3.5.

Шаги для использования очередей с приоритетами RabbitMQ

  1. Установите максимальный приоритет очереди.
  2. Установите приоритет сообщения.

Установите Максимальный Приоритет Очереди

При объявлении очереди установите максимальный приоритет через свойство очереди (x-max-priority). Максимальное значение приоритета составляет 255, и рекомендуется установить его от 1 до 10. Установка на языке Golang:

	// Свойства очереди
	props := make(map[string]interface{})
	// Установить максимальный приоритет очереди
	props["x-max-priority"] = 10

// Объявление очереди
q, err := ch.QueueDeclare(
	"tizi365.hello", // Имя очереди
	true,  // Долговечность очереди
	false, // Удалить при отсутствии использования
	false, // Исключительность
	false, // Не ждать
	props, // Установить свойства очереди
)

Совет: Метод установки на других языках схож.

Установите Приоритет Сообщения

Установка на языке Golang:

err = ch.Publish(
	"tizi365",     // Обмен
	"", // Маршрутный ключ
	false,
	false,
	amqp.Publishing{
		Priority:5, // Установите приоритет сообщения
		DeliveryMode:2,  // Режим доставки сообщения, 1 для непостоянного, 2 для постоянного
		ContentType: "text/plain",
		Body:        []byte(body),
	})