Я хотел бы использовать служебную шину Azure в .Net Core и читать только одно сообщение.Кажется, что Microsoft.Azure.ServiceBus
не поддерживает такой случай.До сих пор тестирование кода немного меня задело:
public void ReceiveOne()
{
var queueClient = new QueueClient(ServiceBusConnectionString, "go_testing");
queueClient.RegisterMessageHandler(
async (message, token) =>
{
var messageBody = Encoding.UTF8.GetString(message.Body);
Console.WriteLine($"Received: {messageBody}, time: {DateTime.Now}");
await queueClient.CompleteAsync(message.SystemProperties.LockToken);
await queueClient.CloseAsync();
},
new MessageHandlerOptions(async args => Console.WriteLine(args.Exception))
{ MaxConcurrentCalls = 1, AutoComplete = false });
}
Так что я закрываю очередь после успешного прочтения одного сообщения.Это работает, но также вызывает исключение.
Знаете ли вы лучший способ добиться этого?