gpt4 book ai didi

akka - 如何在 Akka 中正确启动临时 Actor ?

转载 作者:行者123 更新时间:2023-12-04 15:14:19 25 4
gpt4 key购买 nike

我正在构建与 Akka 中的 ask 模式类似(但不完全相同)的东西,我需要在其中实例化一个临时参与者,该参与者处理单个消息然后自行终止。我已经为每个请求使用 actorOf() 实现了一次基本工作流程,但这感觉不太对,因为它每次都会在新路径上注册一个新 Actor 。

这样做的正确方法是什么?

最佳答案

听起来您需要使用 future .据我了解,Akka future 会为您处理 Actor 的创作和处置;如果您 flatMap几个 future 一起你会注意到一些在同一个 Actor 中执行,而对于其他人,会创建一个新的。无耻地解释一下文档:

import akka.japi.Function;
import java.util.concurrent.Callable;
import akka.dispatch.Futures;
import akka.dispatch.OnComplete;

Future<String> f = Futures.future(new Callable<String>() {
public String call() {
return "Hello" + "World";
}
}, system.dispatcher()).andThen(new OnComplete<String>() {
public void onComplete(Throwable err, String result) {
// do something with the err and/or result
}
});
});

我想像上面这样的东西可能就足够了?查看文档以获取更多示例...

@viktor-clang 可能不知道,但我认为您不应该特别担心在一般情况下产生的 Actor 数量;它们的创建成本比 OS 线程便宜得多。

关于akka - 如何在 Akka 中正确启动临时 Actor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530969/

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