의존

<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") );



Reusable Pieces






  • No labels
Write a comment…