akkaストリームRunnableグラフを直ちに停止する方法を理解できませんか?これを達成するためにkillswitchを使用するには?私がアクアストリームを始めたのはほんの数日でした。私の場合、私はファイルから行を読み込み、流し込みやシンクへの書き込みでいくつかの操作をしています。私がしたいことは、いつでもファイルをすぐに読むことをやめて、実行中のグラフ全体を停止させる必要があると思います。これに関するアイデアは非常に高く評価されます。akkaストリームを突然停止する方法Runnable Graph?
ありがとうございます。一つの方法は、グラフ解約
val graph=
Source.tick(FiniteDuration(0,TimeUnit.SECONDS), FiniteDuration(1,TimeUnit.SECONDS), Random.nextInt).to(Sink.foreach(println))
val cancellable=graph.run()
cancellable.cancel
がcancellable.cancelがActorSystem.registerOnTerminationの一部とすることができる呼び出すことができるサービス又はshutdownhookupを有する
以下のコード例を参照してください:以下のグラフを停止し、大容量のファイルを読み込み解除する方法 を? RunnableGraph.fromGraph(GraphDSL.create(){ 暗黙ビルダー=> インポートGraphDSL.Implicits._ //ソースファイル ヴァルAから: の.outアウトレット[文字列] = builder.add(readFileLineByLine) ()を実行 A〜> E ClosedShape } .INインレット[文字列] = builder.add(writeLinesToFile)) – PainPoints
あなたが知っているような例を提供しています。// ヴァルEを提出し、各ラインを書きますあなたが起動する前にシステムを停止することができますが、私の場合はいつでも実行しているシステムを停止する必要があります。 – PainPoints
私はtthisの作業に行くアッカ・ストリームテストから、以下を参照してください。 ヴァル・スイッチ1 = KillSwitches.shared( "スイッチ") ヴァル下流= RunnableGraph.fromGraph(GraphDSL.create(){ 暗黙のビルダー=> インポートGraphDSLを。 Implicits._ //ソースファイル ヴァルAから: ヴァルEファイルに各ラインの書き込み //の.outアウトレット[文字列] = builder.add(readFileLineByLine):入口[文字列] = builder.addを(writeLinesToFile ).in A.via(switch1.flow)〜> E ClosedShape })。run() switch1.shutdown() – PainPoints