首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Heroku中进行并行HTTP请求?

如何在Heroku中进行并行HTTP请求?
EN

Stack Overflow用户
提问于 2010-11-03 23:45:45
回答 4查看 2.2K关注 0票数 8

我正在构建一个Ruby on Rails应用程序,它可以访问大约6-7个app,根据用户的输入从其中获取信息,比较并向用户显示结果(这些信息不会保存在数据库中)。我将使用Heroku来部署应用程序。我希望那些访问API的HTTP请求是并行完成的,这样响应时间会更好,而不是顺序执行。你认为在Heroku中实现这一点的最好方法是什么?

非常感谢您的任何建议!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-17 12:11:24

如果您想在服务器端实际执行请求(tfe的javascript解决方案是一个好主意),那么最好的选择是使用EventMachine。使用EventMachine提供了一种执行非阻塞IO的简单方法。

也可以在EM-Synchrony上查看一组Ruby1.9光纤感知客户端(包括HTTP)。

对于非阻塞HTTP请求,您需要做的就是:

代码语言:javascript
运行
复制
require "em-synchrony"
require "em-synchrony/em-http"
EM.synchrony do
    concurrency = 2
    urls = ['http://url.1.com', 'http://url2.com']

    # iterator will execute async blocks until completion, .each, .inject also work!
    results = EM::Synchrony::Iterator.new(urls, concurrency).map do |url, iter|

        # fire async requests, on completion advance the iterator
        http = EventMachine::HttpRequest.new(url).aget
        http.callback { iter.return(http) }
        http.errback { iter.return(http) }
    end

    p results # all completed requests
    EventMachine.stop
end

祝你好运!

票数 6
EN

Stack Overflow用户

发布于 2010-11-04 11:42:39

您始终可以使用Javascript在客户端发出请求。然后,您不仅可以并行运行它们,而且甚至不需要往返于您自己的服务器。

票数 1
EN

Stack Overflow用户

发布于 2010-11-12 16:55:32

我还没有尝试过这样的并行化请求。但我已经尝试过在heroku上进行并行操作,效果非常好!这是我关于它的一个简单的博客文章。

http://olemortenamundsen.wordpress.com/2010/10/17/spawning-multiple-threads-at-heroku-using-parallel/

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

https://stackoverflow.com/questions/4088849

复制
相关文章

相似问题

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