如何获取Azure存储队列大小/位置

时间:2016-05-03 08:13:37

标签: c# azure azure-storage azure-storage-queues

所以我将一个项目从我的ASP.NET Web API发送到Azure存储队列,我想向用户提供关于他们的项目在队列中的位置的一些反馈,以及能够在他们的物品的位置,如果他们回来或类似的东西。

并不是说它与这里的问题有很多关系,但这是我用来将项目放在队列中的方法

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigHelper.GetAzureStorage());
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

CloudQueue queue = queueClient.GetQueueReference("my-queue");
await queue.CreateIfNotExistsAsync();

var messageJson = JsonConvert.SerializeObject(item);
CloudQueueMessage cloudQueueMessage = new CloudQueueMessage(messageJson);

await queue.AddMessageAsync(cloudQueueMessage);

所以我一直在CloudQueueClientCloudQueue,但我发现的只有CloudQueue.ApproximateMessageCount,它总是返回null。

我还尝试了一些谷歌搜索如何总是出现入门指南,特别注意我如何获得项目的大小和位置,所以它甚至可能吗?

1 个答案:

答案 0 :(得分:5)

无法获得队列中项目的位置。

对于大致的邮件计数,您必须在检索值之前调用FetchAttributesFetchAttributesAsync。这将使用队列中的实际值填充ApproximateMessageCount