Sto cercando di costruire e gestire un flusso di flusso Akka (in Java DSL) con 2 attori come fonti, poi un bivio unione e poi 1 lavello:Come collegare più attori come sorgenti ad un flusso Akka?
Source<Integer, ActorRef> src1 = Source.actorRef(100, OverflowStrategy.backpressure());
Source<Integer, ActorRef> src2 = Source.actorRef(100, OverflowStrategy.backpressure());
Sink<Integer, BoxedUnit> sink = Flow.of(Integer.class).to(Sink.foreach(System.out::println));
RunnableFlow<BoxedUnit> closed = FlowGraph.factory().closed(sink, (b, out) -> {
UniformFanInShape<Integer, Integer> merge = b.graph(Merge.<Integer>create(2));
b.from(src1).via(merge).to(out);
b.from(src2).to(merge);
});
closed.run(mat);
mia domanda è come posso ottenere ActorRef riferimenti a gli attori di origine per inviare loro messaggi? Nel caso di 1 attore, non utilizzerei il generatore di grafici e quindi il metodo .run() o runWith() restituirebbe l'oggetto ActorRef. Ma cosa fare in caso di molti attori di origine? È persino possibile materializzare un tale flusso?
È necessario passare gli elementi per i quali è necessario l'accesso il valore materializzato a 'closed' e quindi fornire una funzione che combina i valori materializzati. Qualcosa del genere: 'closed (src1, src2, (actorRef1, actorRef2) -> SomethingContainingBothActorRefs, (b, s1, s2) -> ...)' – jrudolph
Grazie, jrudolph. – dev4ever44