我见过不同的片段展示了Put
返回的消息unit
与 F# 的MailboxProcessor
。在某些情况下,仅Post
方法被使用而其他人使用PostAndAsyncReply
,一旦消息被处理,回复通道立即回复。在进行一些测试时,我发现等待回复时存在明显的时间滞后,因此似乎除非您需要真正的回复,否则应该使用Post
.
注意:我开始问这个问题另一个线程 https://stackoverflow.com/a/8482495/29439但认为作为完整问题发布很有用。在另一个线程中,Tomas Petricek 提到回复通道可以使用等待机制来确保调用者延迟到Put
消息已处理。
是否使用PostAndAsyncReply
帮助消息排序,或者只是强制暂停,直到处理第一条消息?在性能方面Post
出现正确的解决方案。准确吗?
Update:
我只是想到一个理由PostAndAsyncReply
可能需要在BlockingQueueAgent example https://github.com/fsharp/fsharpx/blob/master/src/FSharpx.Async/Agents/BlockingQueueAgent.fs: Scan
用于查找Get
当队列已满时消息,所以你不想Put
进而Get
在上一个之前Put
已完成。
我的建议是设计你的系统,以便你可以使用Post
越多越好。
该技术专为异步并发而设计,其目标是“即发即忘”消息。等待响应的想法直接违背了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)