Ada dua cara untuk mengatur waktu kedaluwarsa pesan (TTL) untuk RabbitMQ:
- Mengatur melalui properti antrian, di mana semua pesan dalam antrian memiliki waktu kedaluwarsa yang sama.
- Mengatur waktu kedaluwarsa untuk setiap pesan secara individual, memungkinkan TTL yang berbeda untuk setiap pesan. Jika kedua metode digunakan bersama-sama, TTL pesan akan menjadi nilai terkecil di antara keduanya.
Tip: Untuk metode pertama pengaturan properti antrian, begitu pesan kedaluwarsa, akan dihapus dari antrian. Pada metode kedua, meskipun pesan sudah kedaluwarsa, itu tidak akan langsung dihapus dari antrian karena kedaluwarsa setiap pesan diperiksa sebelum pengiriman ke konsumen.
Berikut adalah demonstrasi bagaimana cara mengatur ini menggunakan Golang, mirip dengan bahasa pemrograman lainnya.
Mengatur TTL Antrian
Mengatur waktu kedaluwarsa pesan melalui properti antrian (x-message-ttl).
// Properti antrian
props := make(map[string]interface{})
// Waktu kedaluwarsa pesan adalah 60 detik
props["x-message-ttl"] = 60000
q, err := ch.QueueDeclare(
"tizi365.ttl.hello", // Nama antrian
true, // Apakah akan mempertahankan antrian
false,
false,
false,
props, // Mengatur properti antrian
)
Mengatur TTL Pesan
Mengatur waktu kedaluwarsa pesan melalui properti pesan
err = ch.Publish(
"tizi365", // Nama Exchange
"", // Kunci routing
false,
false,
amqp.Publishing{
Expiration: "30000", // Waktu kedaluwarsa adalah 30 detik
ContentType: "text/plain",
Body: []byte(body),
})