2014-11-21 110 views
3

我很好奇斯卡拉目前的庫& Akka,這將允許我優雅地構建工作流程管道。斯卡拉管道 - 用於構建DAG工作流程的DSL

就我而言,工作流程僅僅是操作的DAG,因此演員/阿卡感覺非常合適。

我的問題是最好的方法是什麼?有類似反應流的Libs允許流水線真正優雅的組合,但他們似乎非常注重記錄。

我的用例是在它們之間傳遞消息的操作流。未來的作文很好,但一段時間後語法變得笨拙。也許有更好的scalaz和不成形的東西。

什麼是使用消息傳遞爲計算步驟的流水線構建DSL的方法和工具?

+2

你能解釋一下「記錄聚焦」意味着什麼,以及爲什麼這不適合「傳遞消息」?你眼中的「記錄」和「信息」有什麼區別? – 2014-11-21 15:11:00

+0

對不起。我的管道非常像方法調用鏈。參數傳遞是一個消息。 Akka的流媒體方面似乎非常專注於採集數據流。即日誌文件。我的情況是一行1行的日誌文件。雖然它會工作。它有效嗎? – NightWolf 2014-11-22 00:46:34

回答

2

如果您的流水線非常像方法調用鏈,使用方法調用鏈

沒有必要讓解決方案比需要更復雜;如果它是通過一系列方法調用很好地建模的,那就使用它。 (或功能,你可以撰寫。)

如果你需要稍微複雜一些,但你實際上不需要任何消息傳遞,你可能需要像AsyncFPScala.Rx

如果您需要多核解決方案,但您的方法調用看起來很類似,那麼在一站式內部有一系列方法調用。您可以使用Akka流而不用擔心有用的計算比率的開銷。

3

雖然還處於早期開發階段(寫入前1.0版本),但您應該看看akka-streams,這正是一種描述計算圖形然後異步運行的方法。

+0

謝謝。 Akka的流媒體方面似乎非常專注於採集數據流。即日誌文件。我的情況是一行1行的日誌文件。雖然它會工作。它有效嗎? – NightWolf 2014-11-22 00:47:31

+0

使用未來作爲源的流的任何示例? – NightWolf 2014-11-22 00:49:25

+0

'Source(Future(42))':-) – 2014-11-22 11:06:11