我正在使用 Azure ServiceBus 处理多个客户端发送的项目。
我正在测试接收这些消息并并排运行 2 个侦听器的部分。但是,如果我将 2 个项目提交到队列中。只有 1 个侦听器可以工作,而第二个侦听器没有接听其他项目。
但是,我尝试在不同的机器上运行 2 个侦听器,它们都处理推送到队列的 2 个项目。
在同一台机器上运行多个侦听器是否存在问题?如果是,我做错了什么以及如何解决?
谢谢你的时间。
担
我正在使用 Azure ServiceBus 处理多个客户端发送的项目。
我正在测试接收这些消息并并排运行 2 个侦听器的部分。但是,如果我将 2 个项目提交到队列中。只有 1 个侦听器可以工作,而第二个侦听器没有接听其他项目。
但是,我尝试在不同的机器上运行 2 个侦听器,它们都处理推送到队列的 2 个项目。
在同一台机器上运行多个侦听器是否存在问题?如果是,我做错了什么以及如何解决?
谢谢你的时间。
担
在同一台机器上运行多个监听器的问题
我创建了一个控制台应用程序来接收来自服务总线队列的消息,然后我在我的机器上打开并运行程序两次,队列客户端/接收器都可以接收和处理来自同一个队列的消息。
调用 OnMessage 方法:
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
var options = new OnMessageOptions();
options.AutoComplete = false;
client.OnMessage(mes =>
{
Console.WriteLine(mes.GetBody<string>());
}, options);
输出:
调用接收方法:
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
BrokeredMessage mes = client.Receive();
Console.WriteLine(mes.GetBody<string>());
输出:
如果可能,请将您的代码分享给我们,然后我们将根据您的代码重现问题。