首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Goliath不是异步的

Goliath不是异步的
EN

Stack Overflow用户
提问于 2014-02-20 01:15:46
回答 1查看 79关注 0票数 2

我使用Ruby 1.9.3在我的本地主机上运行一个简单的goliath服务器,并且它没有异步运行http请求。代码如下:

代码语言:javascript
复制
require 'goliath'
require 'em-synchrony'
require 'em-synchrony/em-http'

class Server < Goliath::API
  use Goliath::Rack::Validation::RequestMethod, %w(GET PUT POST)

  def initialize
    super
    puts "Started up Bookcover server... Let 'em come!"
  end

  def response(env)
    thumbnail_cover_url, large_book_cover_url = ["http://riffle-bookcovers.s3.amazonaws.com/B00GJYXA5I-thumbnail.jpg", "http://riffle-bookcovers.s3.amazonaws.com/B00GJYXA5I-original.jpg"]
    puts "start"
    a = EM::HttpRequest.new(thumbnail_cover_url).get
    b = EM::HttpRequest.new(large_book_cover_url).get
    puts "done"
    [200, {}, "Hello World"]
  end
end

当我运行ab -n 100 http://127.0.0.1:9000/时,我可以看到它在等待每个请求完成,这意味着调用正在阻塞。

然而,根据文档,Goliath使用Em-synchrony让我编写“同步”代码,但这里不是这种情况。

如果有任何提示和评论,我将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2014-02-20 03:51:05

答案归功于igrigorik。我引用他的回答here

您还需要在运行ab...时指定并发级别。例如ab -c 10 :)

此外,请确保在生产模式(-e prod)下运行它。

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

https://stackoverflow.com/questions/21887620

复制
相关文章

相似问题

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