2

Akkaでは、未来を俳優にパイプすることができます。Play 2.0の約束の下でどのようにそれを行うことができますか?

http://doc.akka.io/docs/akka/current/scala/actors.html#Ask__Send-And-Receive-Future

final Future<Result> transformed = aggregate.map(new Mapper<Iterable<Object>, Result>() {
  public Result apply(Iterable<Object> coll) {
    final Iterator<Object> it = coll.iterator();
    final String s = (String) it.next();
    final int x = (Integer) it.next();
    return new Result(x, s);
  }
});

pipe(transformed).to(actorC);
4

1 に答える 1

1

Play の非同期リクエスト ハンドラで使用するにはFuture<Result>、 を a でラップする必要があります。Promise<Result>次に例を示します。

public static F.Promise<Result> foo() {

    ActorRef fooActor = Akka.system().actorOf(Props.create(FooActor.class));

    Future<Object> response = ask(fooActor, "message", 5000);

    Future<Result> result = response.map(new Mapper<Object, Result>() {
        @Override
        public Result apply(Object message) {
            return ok("whatever");
        }
    }, HttpExecution.defaultContext());

    return F.Promise.wrap(result);
}
于 2013-12-18T23:21:06.363 に答える