[英]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.