2015-03-13 44 views
1

我正在用java實現批處理程序。流程如下:我從數據庫獲取數據將數據轉換爲自定義對象,然後將這些對象放入隊列中。然後,目標是之後運行一些分析邏輯(例如nlp)。我的一位朋友告訴我應該考慮使用java stream api,因爲它支持並行處理。我對Java 8比較陌生,所以我的問題是在哪裏放置(或執行)所提到的分析邏輯?有沒有辦法創建自定義操作,或者我必須實現自定義收集器?使用Stream API的自定義操作

預先感謝您。

+0

取決於你對這些對象所做的事情。這似乎不是Java 8流的工作 - 它似乎是一個更高層次框架的工作,比如[Spring Integration](http://projects.spring.io/spring-integration/) ;您可以在其中配置複雜的命令管道,以在「消息」上執行,這將成爲您的對象。 – 2015-03-13 14:27:36

+3

@BoristheSpider問題很模糊,所以很難提出建議。根據如此少的信息提示彈簧可能有點極端...... – assylias 2015-03-13 14:35:42

+3

您可以將邏輯建模爲一個「映射」操作,它將每個對象轉換爲您的NLP處理結果。然後,您可以使用標準收集器將所有結果放入列表中,或者以某種方式對其進行彙總。提供了很多開箱即用的功能。對於基於IO的流的並行化,我建議看看[這裏](https://www.airpair.com/java/posts/parallel-processing-of-io-based-data-with-java-streams)。 – 2015-03-13 14:45:53

回答

0

正如在@MarkoTopolnik的評論中提到的地圖是解決方案。