我是 NServiceBus 的新手,我正在尝试做一些看起来比应该做的更难的事情......所以如果我遗漏了一些关于 nsb 大局的东西,我就会开始徘徊。
场景如下:
- 向客户端公开 WCF 端点,他们从中请求长时间运行的操作。
- 我想将入站请求映射到 NServiceBus 消息。
- 将消息发布到总线进行处理。
- 向客户发送回复,确认他们的请求已收到,我们将开始处理。
- 总线通过处理程序处理消息。
- 工作完成后,在他们的“回调”端点 (wcf) 上回调客户,以向他们提供他们发出的长时间运行的请求的结果。
我欢迎纠正批评、示例或可能有用的链接。提前致谢!
最佳答案
您可以通过 NSB 管道执行此操作。您可以将处理程序配置为按您指定的顺序执行。在您的情况下,这将与通知一起结束。根据用例,将通知转发到仅处理这些类型通信的另一个端点可能会更好。您需要考虑的是故障场景。如果处理程序失败并且消息被重试,会发生什么?
这一切都基于您不需要维护状态的想法。如果这样做,那么您将需要考虑使用 Saga .这将保持每个长时间运行的事务的状态,并为您提供一些您可能需要的更多功能,例如超时。
关于c# - 与 NServiceBus 的异步 WCF 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256118/