瘦服务器没有超时

时间:2012-12-06 22:43:11

标签: ruby http timeout webserver thin

Thin的代码/文档表明默认连接超时为30秒。但是,当我尝试测试时,它似乎不起作用。我错过了什么?

我正在使用瘦v1.5.0(最新版本)。

# Test this using: curl -X GET http://localhost:3000/test. You will find that the request does not
# timeout after 30s.

require 'thin'

class SimpleAdapter
  def call(env)
    sleep 100
    body = ["hello!"]
    [
      200,
     { 'Content-Type' => 'text/plain' },
      body
    ]
  end
end

server = Thin::Server.new('127.0.0.1', 3000) do
  map '/test' do
    run SimpleAdapter.new
  end
end

server.start!

1 个答案:

答案 0 :(得分:5)

内联文档说明如下:

  

在删除连接之前传入数据的最大秒数。

并且Thin正确显示该行为,即,如果您远程登录服务器:

telnet localhost 3000

并等待30秒,它会断开连接。 但是,cURL命令已经向Thin服务器发送了一个完整的HTTP请求,这就是为什么永远不会达到等待传入数据的超时。