簡體   English   中英

基於計算值的scalaz流消耗流

[英]scalaz-stream consume stream based on computed value

我有兩個流,並且我希望只能基於每x秒運行一次的計算消耗一個流。

我想我基本上需要創建第三個tick流-像every(3.seconds) -進行計算,然后在其他兩個之間進行切換。

我有點被困在這里(我只是剛剛開始使用scalaz-stream來開玩笑)。

謝謝!

有幾種方法可以解決此問題。 一種解決方法是使用awakeEvery 有關具體示例,請參見此處

為了簡短地描述示例,請考慮我們希望每5秒查詢一次Twitter,並獲取推文並進行情感分析。 我們可以如下組成該管道:

val source = 
    awakeEvery(5 seconds) |> buildTwitterQuery(query) through queryChannel flatMap {
        Process emitAll _ 
    }

注意, queryChannel可以表示如下。

def statusTask(query: Query): Task[List[Status]] = Task {
      twitterClient.search(query).getTweets.toList
}

val queryChannel: Channel[Task, Query, List[Status]] = channel lift statusTask

如果您有任何問題,請告訴我。 如前所述,有關完整示例,請參見this

希望對您有所幫助!

暫無
暫無

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

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