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
- Définir la priorité maximale de la file d'attente.
- 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),
})