问题描述
有没有一种方法不使回调消息排队?我有两个.Net Core控制台应用程序,并且正在使用RabbitMQ作为传输使用NServiceBus发送回调。一切正常,当我按下按钮时,发件人发送回叫等待响应。
但是,由于某种原因,如果我按下两次发送消息的按钮,消息就以某种方式“排队”,并且在行(callback => response,callback => response)
中得到2个回调和响应。有没有一种方法可以使这些回调不排队?
以下是一些摘要:
Sender
while (true) // Running a loop and simulating input with the console
{
var key = Console.ReadKey();
Console.WriteLine();
switch (key.Key)
{
case ConsoleKey.D1:
var urMessage = new UricaRequestMessage
{
}
var sendOptions = new SendOptions();
sendOptions.SetDestination("Urica"); // The namespace where UricaRequestMessageHandler lives
log.Info($"Sending a request to Urica");
// Callback sent from here
var response = await endpointInstance.Request<int>(urMessage,sendOptions)
.ConfigureAwait(false);
log.Info($"Callback recieved from Urica with response: {response}");
break;
case ConsoleKey.Q:
return;
default:
log.Info("UnkNown key. Please try again");
break;
}
}
MessageHandler
public Task Handle(UricaRequestMessage message,IMessageHandlerContext context)
{
// Recieved a message,starting to do some things
Thread.Sleep(2000); // Doing stuff,calculating,speculating...
// Returning result
return context.reply(4);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)