我想用Rebus替换我的消息系统,但我需要同步执行一些消息。
我的webapi控制器需要等待所有处理程序完成。
"客户端->控制器->总线(Tx1开始->处理程序1-处理程序2->Tx1完成)->Http.OK"
你知道我该如何实现吗?
谢谢,
目前没有办法,但没有什么可以阻止您在后台有一个处理程序,将收到的回复放入静态ConcurrentDictionary<string, Reply>
中,然后您可以定期轮询与您发送的消息的相关性ID相对应的回复。
您可以将等待封装在返回Task
的可await
方法中,或者如果您想阻止线程直到收到回复,您可能需要查看ManualResetEvent。
当然,您必须使用两个字典来完成此操作,或者构建另一个能够等待多个回复的机制。
不过,这通常不是关联回复的最佳方式,所以我很好奇你想实现什么?