Parece que necesita usar un future. Por lo que tengo entendido, los futuros de Akka se ocupan de la creación del actor & disposición para usted; si flatMap
varios futuros juntos notará que algunos se ejecutan dentro del mismo actor, mientras que para otros se crea uno nuevo. Parafraseando parafraseando la documentación:
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
}
});
});
Supongo que algo como lo anterior podría ser suficiente? Consulte el documento para ver más ejemplos ...
@ viktor-clang podría saber lo contrario, pero no creo que deba estar particularmente preocupado por la cantidad de actores generados en el caso general; son mucho más baratos de crear que los hilos del sistema operativo.
¿Por qué necesita un actor si se trata de una sola vez? solo usa un futuro? Futuro ({process (msg)}) (context.dispatcher) pipeTo algúnOtroActor –
En el contexto, necesitaba que fuera un actor para poder pasarlo como remitente a otra tienda. Sin embargo, el problema más grande puede ser el diseño que lo requiera. – SoftMemes