我正在为Akka中的ask模式构建类似(但不完全相同)的东西,在那里我需要实例化一个处理单个消息然后自杀的临时actor。我已经使用actorOf()为每个请求实现了一次基本工作流程,但这感觉不太正确,因为它每次都会在新路径上注册一个新的actor。
这样做的正确方法是什么?
答案 0 :(得分:5)
听起来你需要使用future。据我所知,Akka期货照顾演员创作&处理你;如果你将flatMap
几个未来放在一起,你会注意到有些在同一个演员中执行,而对于其他人则会创建一个新的。无耻地解释文档:
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
}
});
});
我想上面的内容可能就够了吗?查看文档以获取更多示例......