C#Azure存储队列-从队列中读取消息的更有效方式



我正在使用NET Core 5.0.0开发API Web ASP.NET Core项目,并使用Azure.Storage.Queues 12.6.0写入和读取队列消息。

一切都很好,但我想知道我阅读消息的方式是否可以,或者在速度和效率方面有更好的方法。

这是我正在使用的代码。这只是微软教程中的一段代码,放在while((循环中。AzureQueue只是QueueClient类的一个实例。

public async Task StartReading()
{
while (true)
{
if (await AzureQueue.ExistsAsync())
{
QueueProperties properties = await AzureQueue.GetPropertiesAsync();
if (properties.ApproximateMessagesCount > 0)
{
QueueMessage[] retrievedMessage = await AzureQueue.ReceiveMessagesAsync(1);
string theMessage = retrievedMessage[0].MessageText;
await AzureQueue.DeleteMessageAsync(retrievedMessage[0].MessageId, retrievedMessage[0].PopReceipt);
}
}
}
}

老实说,我不喜欢使用中篇while((循环,因为它在我看来是我无法控制和停止的。但除了我个人的感受,这种while((是一种可以接受的方法还是我应该使用其他方法?我只需要在消息到达队列时立即继续阅读它们。

您可以将代码放在Azure函数中。

然后绑定azure函数以在队列中有内容时触发。

请参阅:https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=csharp

最新更新