의존
<dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-stream_2.12</artifactId> <version>2.5.14</version> </dependency> import akka.stream.*; import akka.stream.javadsl.*; import akka.Done; import akka.NotUsed; import akka.actor.ActorSystem; import akka.util.ByteString; import java.nio.file.Paths; import java.math.BigInteger; import java.time.Duration; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import jdocs.AbstractJavaTest;
First Step
final Materializer materializer = ActorMaterializer.create(system); //실행되는 엔진 final Source<Integer, NotUsed> source = Source.range(1, 100); //<방출요소,실행시 보조값> //방출요소를 순차적으로 처리 final CompletionStage<Done> done = source.runForeach(i -> System.out.println(i), materializer); done.thenRun(() -> System.out.println("Done runfirst1") );
final Materializer materializer = ActorMaterializer.create(system); //실행되는 엔진 final Source<Integer, NotUsed> source = Source.range(1, 100); //<방출요소,실행시 보조값> //Scan을 사용하여 방출요소를 누적합함 final CompletionStage<Done> done = source.scan( 0 , (acc, next) -> acc+next ).runForeach(i -> System.out.println(i), materializer); done.thenRun(() -> System.out.println("Done runFirst2") );