2

メソッド processLine のどこかにブレークポイントをドロップすると、デバッガーはその行で停止しません。ブレークポイントがないかのように実行されます。akka ストリーム フローのデバッグは多少異なりますが、この問題を解決するにはどうすればよいですか?

val stream = source.
                 map( csvLine => A.processLine(csvLine)).
                 runWith(Sink)
4

1 に答える 1

2

ScalaIDEで同様の問題が発生しました。

私の解決策は、通常、「ビジネス ロジック」を akka の依存関係から分離することでした。

//no akka imports required

case class Tweet(val author : String, val body : String)

def validAuthor(author : String) : Boolean = {
  author.trim().size > 0 && !author.equalsIgnoreCase("jk_rowling") //breakpoint works here
}

次に、私の非同期コードは、buz ロジックへの単純な呼び出しになります。

import akka.stream.scaladsl.{Source, Sink}

val source : Source[Tweet,_] = ???

val flow = source.filter(validAuthor)
                 .runWith(Sink foreach println)

その後、IDE は buz ロジック内のブレークポイントに従いますvalidAuthor

于 2015-11-30T13:56:00.903 に答える