คิวพริออเรที้ (Priority queues) ตามชื่อเสียงแสดงถึงการให้ลำดับความสำคัญให้กับข้อความที่มีความสำคัญสูงขึ้นเพื่อที่จะถูกบริโภค

ข้อควรระวังสำหรับคิวพริออเรที้ของ 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),
	})