Ben oluşturmak ve kaynakları olarak 2 aktörler, daha sonra bir birleştirme kavşak ile (Java DSL aylarında) akka akışı akışını çalıştırmak ve çalışıyorum sonra 1 lavabo:Akka akışına kaynak olarak çoklu aktörler nasıl eklenir?
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);
sorum nasıl ben ActorRef başvurular edinebilirim edilir Onları mesaj göndermek için kaynak aktörler? 1 oyuncu durumunda, grafik oluşturucu kullanmazdım ve daha sonra .run() veya runWith() yöntemi ActorRef nesnesini döndürürdü. Ancak birçok kaynak aktörün durumunda ne yapmalı? Böyle bir akışı gerçekleştirmek mümkün mü?
:
jrudolph tavsiyesine kullanarak, böyle aktörleri kullanmak başardı (gerçek kodda ben 2 ActorRefs listesi daha güzel bir şey yaptı) maddi değeri "kapalı" değerine getirilir ve daha sonra maddi değerleri birleştiren bir işlev sağlar. Böyle bir şey: 'kapalı (src1, src2, (actorRef1, actorRef2) -> SomethingContainingBothActorRefs, (b, s1, s2) -> ...)' – jrudolph
Teşekkürler, jrudolph. – dev4ever44