首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用事件循环或线程池的FRP示例

使用事件循环或线程池的FRP示例
EN

Stack Overflow用户
提问于 2016-04-06 21:28:20
回答 1查看 160关注 0票数 1

我的问题最终是关于ruby rx库的,尽管任何语言的任何示例都会很高兴。基本上,我想要的是将每个操作调度到一个现有的事件循环(或线程池)。我想这必须由一个调度器来完成。我还没有找到任何调度器将递归操作发送到事件循环的示例,这就是为什么我要问这个问题。下面是ruby rx的列表:

https://github.com/ReactiveX/RxRuby/tree/master/lib/rx/concurrency

为什么要使用事件循环?因为我想添加在事件循环中工作的IO操作,并利用并发性。如下所示:

代码语言:javascript
复制
Rx::Observable.from_enumerable(hosts).
  map { |h| HTTP.connect(h) }.
  map{|host| host.get("http://myservice/somelist.txt") }.
  on_next { |html| parse(html).each_line.....} # you get the idea
EN

回答 1

Stack Overflow用户

发布于 2016-04-06 23:21:44

这通常是通过调度器完成的,我希望RubyRx端口包含EventloopScheduler

您可以使用ObserveOn运算符将它们排入队列/进行调度

代码语言:javascript
复制
Rx::Observable.from_enumerable(hosts).
  observeOn(els). # you have declared els somewhere else as an EventLoopScheduler instance
  map { |h| HTTP.connect(h) }.
  map{|host| host.get("http://myservice/somelist.txt") }.
  on_next { |html| parse(html).each_line.....} # you get the idea

或者,您可以在映射中添加并发

代码语言:javascript
复制
Rx::Observable.from_enumerable(hosts).
  observeOn(els). # you have declared els somewhere else as an EventLoopScheduler instance
  map { |h| HTTP.connect(h) }.
  flatmap{|host| Rx::Observable.start(host.get("http://myservice/somelist.txt"), els) }.
  on_next { |html| parse(html).each_line.....} # you get the idea

我希望代码可以工作(我是C#/JS)

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

https://stackoverflow.com/questions/36452607

复制
相关文章

相似问题

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