c# - 与 NServiceBus 的异步 WCF 集成

标签 c# wcf asynchronous nservicebus

我是 NServiceBus 的新手,我正在尝试做一些看起来比应该做的更难的事情......所以如果我遗漏了一些关于 nsb 大局的东西,我就会开始徘徊。

场景如下:

  • 向客户端公开 WCF 端点,他们从中请求长时间运行的操作。
  • 我想将入站请求映射到 NServiceBus 消息。
  • 将消息发布到总线进行处理。
  • 向客户发送回复,确认他们的请求已收到,我们将开始处理。
  • 总线通过处理程序处理消息。
  • 工作完成后,在他们的“回调”端点 (wcf) 上回调客户,以向他们提供他们发出的长时间运行的请求的结果。

我欢迎纠正批评、示例或可能有用的链接。提前致谢!

最佳答案

您可以通过 NSB 管道执行此操作。您可以将处理程序配置为按您指定的顺序执行。在您的情况下,这将与通知一起结束。根据用例,将通知转发到仅处理这些类型通信的另一个端点可能会更好。您需要考虑的是故障场景。如果处理程序失败并且消息被重试,会发生什么?

这一切都基于您不需要维护状态的想法。如果这样做,那么您将需要考虑使用 Saga .这将保持每个长时间运行的事务的状态,并为您提供一些您可能需要的更多功能,例如超时。

关于c# - 与 NServiceBus 的异步 WCF 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256118/

相关文章:

C#如何分离控件和控件的自定义设计器

WCF 服务网络TCPbinding

c# - WebRequest 不工作

javascript - 无法理解 async/await Nodejs

javascript - 递归函数JS中级联多个异步调用

javascript - 异步功能控制台日志记录乱序

c# - 快速绘制抗锯齿线

c# - 模仿WP7解锁页面动画

c# - 从所有 Controller 调用方法

c# - 调用 WCF 服务时出现随机 AuthenticationManager CustomTargetNameDictionary 异常