我想创建一个分区队列,我一直在阅读这个网站: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);
}
}
答案 0 :(得分:3)
感谢您抓住这个!我会确保文档更新。我已经向开发团队确认,如果将AutoDeleteOnIdle设置为任何值(并且EnablePartitioning为TRUE),您将获得异常。
- 塞思曼海姆
Microsoft Azure文档小组
答案 1 :(得分:2)
它似乎只是文档中的错误。如果在创建队列描述时未指定属性,则不应出现任何问题。
我会确保合适的人看到文档问题。 :)