Azure 服务总线上的主题和关联的订阅都公开DefaultMessageTimeToLive
属性;像这样初始化:
if (!NamespaceManager.TopicExists(TopicName))
{
NamespaceManager.CreateTopic(
new TopicDescription(TopicName)
{
MaxSizeInMegabytes = 5120,
DefaultMessageTimeToLive = TimeSpan.FromDays(14)
});
}
if (!NamespaceManager.SubscriptionExists(TopicName, SubscriptionName))
{
NamespaceManager.CreateSubscription(
new SubscriptionDescription(TopicName, SubscriptionName)
{
LockDuration = TimeSpan.FromMinutes(5),
DefaultMessageTimeToLive = TimeSpan.FromDays(7),
EnableDeadLetteringOnMessageExpiration = true
});
}
两者有什么区别?设置两个 TTL 的目的是什么?此外;如果主题上的消息过期了,会发生什么情况?
最佳答案
主题上设置的 TTL 应用于其所有订阅。如果需要,订阅可以有自己的 TT,但它应该小于主题 TTL。应用于订阅的 TTL 应用于发送给它的所有消息,并且消息可以有自己的 TTL,该 TTL 应再次小于订阅 TTL。 如果消息过期并且订阅上启用了死信,则过期消息将被移至死信队列,否则将被永久删除。
更多信息请点击:http://msdn.microsoft.com/en-us/library/windowsazure/hh780749.aspx
关于c# - Azure 服务总线上的主题 DefaultMessageTimeToLive 和订阅 DefaultMessageTimeToLive 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491993/