gpt4 book ai didi

C# protoactor - 替代 Akka.NETs pipeto?

转载 作者:太空狗 更新时间:2023-10-30 00:48:22 30 4
gpt4 key购买 nike

在 Akka 和 Akka.Net 中有 PipeTo pattern 用于处理异步内容(如 I/O)并将消息通过管道返回给参与者的消息框。如何在 Protoactor 中完成?

最佳答案

在Proto.Actor中有两种处理异步 Action 的方式。第一种是简单地 await 任务,因为 Proto.Actor 完全支持异步等待。但是您可能知道,这将阻止 actor 在等待期间处理其他消息。

PipeTo 类似的另一种选择是 ReenterAfter。这与 PipeTo 相同,但不发送消息而是触发回调:

public Task ReceiveAsync(IContext context)
{
var task = GetSomeAsyncTask(...);
context.ReenterAfter(task, t => {
//code inside here will run when the task completes.
//still preserving actor concurrency constraints
});
}

这通常使代码比 PipeTo 更易于推理,因为它会强制您发送消息并添加另一个消息处理程序。使用 ReenterAfter,您会获得相同的效果,并发性仍然受到参与者的限制,但您可以通过这种方式构建整个工作流。

关于C# protoactor - 替代 Akka.NETs pipeto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47083260/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com