无论如何同步执行消息?
Is there anyway to execute messages synchronously?
我想用 Rebus 替换我的消息系统,但我需要同步执行一些消息。
我的 webapi 控制器需要等到所有处理程序完成。
"Client -> Controller -> Bus (Tx1 Begin -> Handler1 - Handler2 -> Tx1 Complete) -> Http.OK"
你知道我该如何实现吗?
谢谢,
目前没有办法,但没有什么能阻止您在后台使用处理程序将收到的回复放入静态 ConcurrentDictionary<string, Reply>
,然后您可以定期轮询对应于例如您发送的消息的相关 ID。
您可以将等待包装在 returns 一个 Task
的 await
可用方法中,或者如果需要,您可能想看看 ManualResetEvent阻塞线程直到收到回复。
您当然必须使用两个词典来执行此操作,或者构建另一个能够等待多个回复的机制。
虽然这通常不是关联回复的最佳方式,所以我很想知道您想要达到什么目的?
我想用 Rebus 替换我的消息系统,但我需要同步执行一些消息。
我的 webapi 控制器需要等到所有处理程序完成。
"Client -> Controller -> Bus (Tx1 Begin -> Handler1 - Handler2 -> Tx1 Complete) -> Http.OK"
你知道我该如何实现吗?
谢谢,
目前没有办法,但没有什么能阻止您在后台使用处理程序将收到的回复放入静态 ConcurrentDictionary<string, Reply>
,然后您可以定期轮询对应于例如您发送的消息的相关 ID。
您可以将等待包装在 returns 一个 Task
的 await
可用方法中,或者如果需要,您可能想看看 ManualResetEvent阻塞线程直到收到回复。
您当然必须使用两个词典来执行此操作,或者构建另一个能够等待多个回复的机制。
虽然这通常不是关联回复的最佳方式,所以我很想知道您想要达到什么目的?