gpt4 book ai didi

web-applications - 在Web应用程序中使用NServiceBus

转载 作者:行者123 更新时间:2023-12-02 04:13:14 26 4
gpt4 key购买 nike

关于Using NServiceBus with Asp.Net MVC 2线程的另一个问题。乌迪回答说,如果我们真的想这样做,可以使用以下方法。

var sync = Bus.Send<SomeMessage>(/*data*/)
.Register((AsyncCallback)delegate(IAsyncResult ar)
{
var result = ar.AsyncState as CompletionResult;
// do something with result.Messages
},
null
);

sync.AsyncWaitHandle.WaitOne( /*timeout*/);

由于只有一个用户,因此在Windows应用程序中可以完美地工作。

我不知道这将如何在Web应用程序中工作。因为有多个线程(用于多个用户 session ),所以调用Bus.Send并等待回调。只有一个答复队列(如果我的理解正确的话)。

NServiceBus是否基于从队列接收到的响应消息知道要恢复哪个线程?

如果我的理解是正确的,则不建议在此类情况下使用消息传递(将请求消息从Web应用程序发送到服务,该服务会处理该消息并回复响应消息)

“例如,如果您要执行类似GetCustomersByRegionRequest和CustomerByRegionResponse的查询,则不应使用消息传递来实现。”
- http://docs.particular.net/

最佳答案

在内部,NSB通过维护回调及其相关消息的字典来将所有这些保持在一起。消息具有用于执行查找的相关性ID。您是正确的,在“请求/响应”方案中使用消息确实违反了消息传递的目的。主要目的是不阻塞,其中请求/响应本质上是阻塞模式。请参阅上面文章中Andreas的回复,它有很好的解释。

关于web-applications - 在Web应用程序中使用NServiceBus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025255/

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