Le code a pour but de donner la priorité aux messages ayant une priorité plus élevée pour être consommés.

Points à noter pour les files d'attente prioritaires RabbitMQ:

  • Les files d'attente prioritaires ne prennent effet que lorsqu'il y a un nombre insuffisant de consommateurs et que la consommation ne peut être effectuée en temps voulu.
  • Les files d'attente prioritaires sont prises en charge uniquement après la version 3.5 de RabbitMQ.

Étapes pour utiliser les files d'attente prioritaires RabbitMQ

  1. Définir la priorité maximale de la file d'attente.
  2. Définir la priorité du message.

Définir la priorité maximale de la file d'attente

Lors de la déclaration de la file d'attente, définissez la priorité maximale de la file d'attente via la propriété de la file (x-max-priority). La valeur maximale de la priorité est 255, et il est recommandé de la régler entre 1 et 10. Réglage en Golang :

	// Propriétés de la file d'attente
	props := make(map[string]interface{})
	// Définir la priorité maximale de la file d'attente
	props["x-max-priority"] = 10

// Déclarer la file d'attente
q, err := ch.QueueDeclare(
	"tizi365.hello", // Nom de la file d'attente
	true,  // File d'attente durable
	false, // Supprimer lorsqu'inutilisé
	false, // Exclusif
	false, // Pas d'attente
	props, // Définir les propriétés de la file d'attente
)

Astuce : La méthode de réglage dans d'autres langues est similaire.

Définir la priorité du message

Réglage en Golang :

err = ch.Publish(
	"tizi365",     // Échange
	"", // Clé de routage
	false,
	false,
	amqp.Publishing{
		Priority:5, // Définir la priorité du message
		DeliveryMode:2,  // Mode de livraison du message, 1 pour non persistant, 2 pour persistant
		ContentType: "text/plain",
		Body:        []byte(body),
	})