Ada dua cara untuk mengatur waktu kedaluwarsa pesan (TTL) untuk RabbitMQ:

  1. Mengatur melalui properti antrian, di mana semua pesan dalam antrian memiliki waktu kedaluwarsa yang sama.
  2. 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),
		})