我对Scala和Akka的当前库感到好奇,这将使我能够优雅地构建工作流管道。
就我而言,工作流只是操作的DAG,因此演员/ Akka感觉很合适。
我的问题是最好的方法是什么?有类似反应流的库,它们可以真正优雅地组成管道,但它们似乎非常注重记录。
我的用例是在它们之间传递消息的操作流。将来的编写很好,但是一段时间后语法变得笨拙。 scalaz和不定型可能会更好。
使用消息传递为计算步骤的流水线构建DSL的方法和工具是什么?
最佳答案
如果您的管道非常类似于方法调用链,请使用方法调用链!
使解决方案变得比需要的复杂没有任何意义。如果它由一系列方法调用很好地建模,则只需使用它即可。 (或可以组成的功能。)
如果您需要稍微复杂一些的东西,但实际上不需要任何消息传递,则可能需要AsyncFP或Scala.Rx之类的东西。
如果您需要一个多核解决方案,但是您的扩展看起来像方法调用,那么一站式地拥有一系列方法调用。您可以为此使用Akka流,而不必担心太多开销与有用的计算比率。