2

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

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

  • 队列或主题的分区不会在空闲时启用自动删除。如果发生以下任何情况,服务总线将返回 InvalidOperationException:
    • 您尝试创建 Microsoft.ServiceBus.Messaging.QueueDescription.AutoDeleteOnIdle 和 Microsoft.ServiceBus.Messaging.QueueDescription.EnablePartitioning 属性都设置为 true 的队列。

但是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);
    }
}
4

2 回答 2

3

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

——塞思·曼海姆

微软 Azure 文档团队

于 2014-08-29T19:12:27.357 回答
2

它似乎只是文档中的一个错误。如果您在创建队列描述时未指定属性,则应该没有任何问题。

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

于 2014-08-29T11:54:51.180 回答