Azure Service Bus AutoDeleteOnIdle

时间:2014-08-29 07:00:36

标签: c# .net azure azureservicebus azure-servicebus-queues

我想创建一个分区队列,我一直在阅读这个网站:http://msdn.microsoft.com/en-us/library/azure/dn520246.aspx

  

在当前的实现中,Service Bus对分区队列和主题施加了以下限制:

     
      
  • 对队列或主题进行分区不会在空闲时自动删除。如果出现以下任何一种情况,Service Bus将返回InvalidOperationException:   
        
    • 您尝试创建一个队列,Microsoft.ServiceBus.Messaging.QueueDescription.AutoDeleteOnIdle和Microsoft.ServiceBus.Messaging.QueueDescription.EnablePartitioning属性都设置为true。
    •   
  •   

但是AutoDeleteOnIdle是TimeSpan。他们是指另一个财产?或者我将TimeSpan设置为0或-1刻度?根据{{​​3}},最短持续时间为5分钟。我无论如何都不会寻找任何自动删除功能。我应该忽略它吗?

public static void CreateQueueIfNotExist(string queueName)
{
    if (namespaceManager == null)
        namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
    if (!namespaceManager.QueueExists(queueName))
    {
        QueueDescription qDescription = new QueueDescription(queueName);
        qDescription.DefaultMessageTimeToLive = new TimeSpan(14, 0, 0, 0);
        qDescription.LockDuration = new TimeSpan(0, 5, 0);
        qDescription.EnablePartitioning = true;
        qDescription.RequiresDuplicateDetection = false;
        qDescription.AutoDeleteOnIdle = ???????????; // TODO
        namespaceManager.CreateQueue(qDescription);
    }
}

2 个答案:

答案 0 :(得分:3)

感谢您抓住这个!我会确保文档更新。我已经向开发团队确认,如果将AutoDeleteOnIdle设置为任何值(并且EnablePartitioning为TRUE),您将获得异常。

- 塞思曼海姆

Microsoft Azure文档小组

答案 1 :(得分:2)

它似乎只是文档中的错误。如果在创建队列描述时未指定属性,则不应出现任何问题。

我会确保合适的人看到文档问题。 :)