gpt4 book ai didi

c# - Azure服务总线: ReceiveMessagesAsync returns only a subset

转载 作者:行者123 更新时间:2023-12-05 03:40:02 25 4
gpt4 key购买 nike

我编写了一段代码,一次性从 Azure 服务总线队列中读取 1000 条消息。我使用以下行读取消息:await receive.ReceiveMessagesAsync(1000);,但仅收到消息的子集。

我从示例中获取了代码:https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/Azure.Messaging.ServiceBus/tests/Samples/Sample01_HelloWorld.cs 、SendAndReceiveMessageSafeBatch() 方法

这是我的代码:

public class Program
{
static void Main(string[] args)
{
SendAndReceiveMessage().GetAwaiter().GetResult();
}

public static async Task SendAndReceiveMessage()
{
var connectionString = "myconnectionstring";
var queueName = "myqueue";

// since ServiceBusClient implements IAsyncDisposable we create it with "await using"
await using var client = new ServiceBusClient(connectionString);

// create the sender
var sender = client.CreateSender(queueName);

IList<ServiceBusMessage> messages = new List<ServiceBusMessage>();
for (var i = 0; i < 1000; i++)
{
messages.Add(new ServiceBusMessage($"Message {i}"));
}

// send the messages
await sender.SendMessagesAsync(messages);

// create a receiver that we can use to receive the messages
var options = new ServiceBusReceiverOptions()
{
ReceiveMode = ServiceBusReceiveMode.ReceiveAndDelete
};

ServiceBusReceiver receiver = client.CreateReceiver(queueName, options);

// the received message is a different type as it contains some service set properties
IReadOnlyList<ServiceBusReceivedMessage> receivedMessages = await receiver.ReceiveMessagesAsync(1000);

Console.WriteLine($"Received {receivedMessages.Count} from the queue {queueName}");

foreach (ServiceBusReceivedMessage receivedMessage in receivedMessages)
{
var body = receivedMessage.Body.ToString();
Console.WriteLine(body);
}

Console.WriteLine("END");
Console.ReadLine();
}
}

您对如何一次性阅读全部 1000 条消息有什么建议吗?

最佳答案

这是 Azure 服务总线的预期行为。要接收的消息数,maxMessages是无法保证的最大数量。

关于c# - Azure服务总线: ReceiveMessagesAsync returns only a subset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68322958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com