【发布时间】:2017-11-15 15:12:38
【问题描述】:
我应该在 Azure 队列上的每次读/写之前调用 CreateIfNotExistsAsync() 吗?
我知道它会导致 REST 调用,但它会在队列中执行任何 IO 吗?
我正在为 Azure 队列使用 .Net 库(如果此信息很重要)。
【问题讨论】:
标签: c# .net azure azure-queues
我应该在 Azure 队列上的每次读/写之前调用 CreateIfNotExistsAsync() 吗?
我知道它会导致 REST 调用,但它会在队列中执行任何 IO 吗?
我正在为 Azure 队列使用 .Net 库(如果此信息很重要)。
【问题讨论】:
标签: c# .net azure azure-queues
该方法所做的只是尝试创建队列并捕获 AlreadyExists 错误,您可以通过在尝试访问队列时捕获 404 来轻松复制自己。肯定会有一些性能影响。
更重要的是,它会增加您的成本:来自Understanding Windows Azure Storage Billing – Bandwidth, Transactions, and Capacity [MSDN]
我们已经看到应用程序在将每条消息放入该队列之前对该队列执行 CreateIfNotExist [原文如此]。这会导致他们想要排队的每条消息都向存储系统发出两个单独的请求,而创建队列失败。 确保只在 Blob 容器、表和队列的生命周期开始时创建它们,以避免这些额外的事务成本。
【讨论】: