gpt4 book ai didi

c# - 有没有办法登记 Azure 服务总线中所有队列的所有消息并将它们存储在 json 中?

转载 作者:行者123 更新时间:2023-12-03 06:48:45 26 4
gpt4 key购买 nike

我最近开始使用 Microsoft Azure,并希望在 C# 中创建自定义代码,因此我能够打印出单个指定队列的消息,但我在尝试对多个队列执行此操作并存储此数据时遇到问题在 json 文件中

static QueueClient queueClient;
static void Main(string[] args)
{
string sbConnectionString = "connection-string";
string sbQueueName = "queue-name";

try
{
queueClient = new QueueClient(sbConnectionString, sbQueueName);

var messageHandlerOptions = new MessageHandlerOptions(ExceptionReceivedHandler)
{
MaxConcurrentCalls = 1,
AutoComplete = false
};
queueClient.RegisterMessageHandler(ReceiveMessagesAsync, messageHandlerOptions);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadKey();
queueClient.CloseAsync();
}
}

static async Task ReceiveMessagesAsync(Message message, CancellationToken token)
{
Console.WriteLine($"Received message: {Encoding.UTF8.GetString(message.Body)}");
await queueClient.CompleteAsync(message.SystemProperties.LockToken);
}

static Task ExceptionReceivedHandler(ExceptionReceivedEventArgs exceptionReceivedEventArgs)
{
Console.WriteLine(exceptionReceivedEventArgs.Exception);
return Task.CompletedTask;
}

最佳答案

Is there a way to enlist all of the messages of all the queues in an Azure servicebus and store them in a json?

如果您需要多个队列,那么使用服务总线处理器可能不是实现该目标的最便捷方法。相反,使用 ServiceBusReceiver.ReceiveMessagesAsync() 获取多条消息会更有效。处理器每次调用仅获取一条消息。要将消息聚合到单个 JSON 文件中,需要使用自定义代码。

如果您不需要从各个队列接收消息,我建议 auto-forwarding从所有队列到单个队列并读取 batches 中的消息从那个队列中。这将有助于使您的代码更简单。

关于c# - 有没有办法登记 Azure 服务总线中所有队列的所有消息并将它们存储在 json 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73890215/

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