Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取Azure存储队列大小/位置_C#_Azure_Azure Storage_Azure Storage Queues - Fatal编程技术网

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

C# 如何获取Azure存储队列大小/位置,c#,azure,azure-storage,azure-storage-queues,C#,Azure,Azure Storage,Azure Storage Queues,因此,我将一个项目从我的ASP.NET Web API发送到Azure存储队列,我想向用户提供一些关于他们的项目在队列中的位置的反馈,并能够在他们回来或类似情况下更新他们的项目位置 这与这里的问题没有多大关系,但这是我用来将项目放入队列的方法 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigHelper.GetAzureStorage()); CloudQueueClient queueClient = s

因此,我将一个项目从我的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);
因此,我四处搜索了
CloudQueueClient
CloudQueue
,但我能找到的只是
CloudQueue.ApproximateMessageCount
,它总是返回null


我也尝试过用谷歌搜索一下入门指南,特别是关于如何获取队列中物品的大小和位置,那么这是否可能呢

无法获取项目在队列中的位置


对于近似的消息计数,必须在检索值之前调用或。这将使用队列中的实际值填充
ApproximateMessageCount

这有点糟糕,但至少因为队列中的每个项目都需要相同的时间来处理,并且实际上知道
ApproximateMessageCount
的工作原理,我可以估算它需要的时间并将其返回给用户,谢谢heaps@Toxicable:这主要是由于分布式队列的工作方式-无法保证消息的顺序。它将接近先进先出,但可能不是100%,所以你不能给出一个数字来表示位置,因为它有点模糊。我明白了,这是有道理的。我不知道这是一个分布式队列,这比,谢谢你清除它更有意义up@Toxicable如果获取消息计数有助于在此处签出答案@Toxicable,请注意服务总线队列与存储队列完全不同