रैबिटएमक्यू (RabbitMQ) के लिए संदेश समाप्ति समय (TTL) निर्धारित करने के दो तरीके हैं:

  1. कतार गुणों के माध्यम से सेट करें, जहां कतार में सभी संदेशों का समान समाप्ति समय होता है।
  2. प्रत्येक संदेश के लिए व्यक्तिगत रूप से समाप्ति समय निर्धारित करें, जो हर संदेश के लिए विभिन्न TTL की अनुमति देता है। यदि दोनों तरीके साथ में प्रयोग किया जाता है, तो संदेश का TTL दोनों के बीच छोटे मूल्य होगा।

सुझाव: कतार गुणों के पहले तरीके के लिए, एक बार संदेश समाप्त होने पर, इसे कतार से हटा दिया जाएगा। दूसरे तरीके में, यदि संदेश समाप्त होता है, तो संदेश को तुरंत कतार से हटाया नहीं जाएगा क्योंकि हर संदेश की समाप्ति की पूर्व-निरीक्षण किया जाता है पहुंचाने से पहले।

नीचे एक प्रदर्शन है कि इसे गोलैंग का उपयोग करके कैसे सेट किया जाता है, अन्य प्रोग्रामिंग भाषाओं के तरह।

कतार TTL सेट करें

कतार गुणों के माध्यम से संदेश समाप्ति समय सेट करें (x-message-ttl)।

	// कतार गुण
	props := make(map[string]interface{})
	// संदेश समाप्ति समय 60 सेकंड है
	props["x-message-ttl"] = 60000

	q, err := ch.QueueDeclare(
		"tizi365.ttl.hello", // कतार नाम
		true,   // क्या कतार को स्थायी रूप से संग्रहीत करना है
		false,
		false,
		false,
		props, // कतार गुण सेट करें
	)

संदेश TTL सेट करें

संदेश गुणों के माध्यम से संदेश समाप्ति समय सेट करें

err = ch.Publish(
		"tizi365",     // एक्सचेंज नाम
		"", // राउटिंग की
		false,
		false,
		amqp.Publishing{
			Expiration: "30000", // समाप्ति समय 30 सेकंड है
			ContentType: "text/plain",
			Body:        []byte(body),
		})