簡體   English   中英

在Akka Streams中,Sink.fold()處理序列化了嗎?

[英]In Akka Streams, is Sink.fold() processing serialized?

我開始使用Akka流; 我正在嘗試創建一個從Web服務讀取數據的流,然后將它們保存在S3中。 我想知道,如果我使用Sink.fold方法定義一個Sink(為了收集持久性元素的信息),發送到接收器的元素是一個接一個地處理還是並行處理?

這是一個基本問題,但我無法在文檔中找到明確的答案。

由於Sink.fold需要前面元素的結果將它與下一個元素組合,因此它必然是順序的。

實際上,它更像是一個Sink.foldLeft

換句話說,如果你有a, b作為元素,並且你用f折疊它們,你需要acc = f(zero, a)才能處理f(acc, b) 所以,直到在處理a完成b無法處理。

來自api doc

一個Sink,它將為每個接收到的元素調用給定的函數,為其提供先前的輸出(或給定的零值),並將元素作為輸入。 返回的java.util.concurrent.CompletionStage將在輸入流結束時以最終功能評估的值完成,或者如果在流中發出故障,則完成失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM