2014-08-29 3 views
2

Я хочу сделать разделенную очередь, и я читал этот сайт: http://msdn.microsoft.com/en-us/library/azure/dn520246.aspxAzure Service Bus AutoDeleteOnIdle

В текущей реализации Service Bus накладывает следующие ограничения на секционированных очереди и темы:

  • Разделение очередей или тем не разрешает автоматическое удаление при простоях. Service Bus возвращает InvalidOperationException, если любой из следующих условий:
    • Вы пытаетесь создать очередь, свойства Microsoft.ServiceBus.Messaging.QueueDescription.AutoDeleteOnIdle и Microsoft.ServiceBus.Messaging.QueueDescription.EnablePartitioning оба набора для правда.

Но AutoDeleteOnIdle является TimeSpan. Они имеют в виду другую собственность? Или я устанавливаю TimeSpan на 0 или -1 тиков? Согласно http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queuedescription.autodeleteonidle.aspx минимальная продолжительность составляет 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

Похоже, что это ошибка в документации. Если вы не укажете свойство при создании описания очереди, у вас не должно быть никаких проблем.

Я убеждаюсь, что правильные люди видят проблему с документацией. :)

3

Благодарим вас за это! Я сделаю так, чтобы документы были обновлены. Я подтвердил в команде разработчиков, что вы получите исключение, если AutoDeleteOnIdle установлено на любое значение (а EnablePartitioning - TRUE).

--Seth Manheim

Microsoft Azure Documentation Team