คิวพริออเรที้ (Priority queues) ตามชื่อเสียงแสดงถึงการให้ลำดับความสำคัญให้กับข้อความที่มีความสำคัญสูงขึ้นเพื่อที่จะถูกบริโภค
ข้อควรระวังสำหรับคิวพริออเรที้ของ RabbitMQ:
- คิวพริออเรที้จะมีผลเมื่อมีผู้บริโภคไม่เพียงพอและการบริโภคไม่สามารถทำได้ทันที
- คิวพริออเรที้ได้รับการสนับสนุนเท่านั้นหลังจากเวอร์ชัน RabbitMQ เวอร์ชัน 3.5
ขั้นตอนในการใช้คิวพริออเรที้ของ RabbitMQ
- ตั้งค่าลำดับความสำคัญสูงสุดของคิว
- ตั้งค่าลำดับความสำคัญของข้อความ
ตั้งค่าลำดับความสำคัญสูงสุดของคิว
เมื่อประกาศคิว ให้ตั้งค่าลำดับความสำคัญสูงสุดของคิวผ่านคุณสมบัติของคิว (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),
})