首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >scalaz-stream根据计算值使用流

scalaz-stream根据计算值使用流
EN

Stack Overflow用户
提问于 2016-03-12 01:50:30
回答 1查看 73关注 0票数 0

我有两个流,我希望能够基于每x秒运行一次的计算来消耗其中一个流。

我认为我基本上需要创建第三个tick流-类似于every(3.seconds) -来执行计算,然后在其他两个流之间进行切换。

我有点被困在这里了(我才刚刚开始使用scalaz-stream)。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-05-18 18:37:50

有几种方法可以解决这个问题。解决这个问题的一种方法是使用awakeEvery。具体示例请参见here

为了简单地描述这个例子,假设我们想要每隔5秒查询一次twitter,并获得tweet并执行情感分析。我们可以按如下方式编写此管道:

代码语言:javascript
运行
复制
val source = 
    awakeEvery(5 seconds) |> buildTwitterQuery(query) through queryChannel flatMap {
        Process emitAll _ 
    }

请注意,可以按如下方式声明queryChannel

代码语言:javascript
运行
复制
def statusTask(query: Query): Task[List[Status]] = Task {
      twitterClient.search(query).getTweets.toList
}

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

如果你有任何问题,请告诉我。如前所述,有关完整示例,请参阅this

我希望它能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35946734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档