具有大型请求正文的Heroku HTTP请求

时间:2014-04-05 06:14:42

标签: ruby-on-rails heroku unicorn

我正在使用Heroku上的unicorn服务器在rails app上运行ruby。

场景:客户端发送带有大型请求正文的HTTP POST请求。

我的理解:

  1. Heroku路由器与客户端建立HTTP连接并将其转发给dyno
  2. 30秒计数器开始
  3. Dyno开始通过连接从客户端读取请求正文
  4. 如果客户端速度慢并且需要超过30秒才能传输请求正文Heroku发出HTTP 503错误并关闭连接
  5. 我的理解是对的吗?或者,在dyno读取请求体后,Heroku只启动超时计数器?

1 个答案:

答案 0 :(得分:0)

根据Heroku's docs

  

HTTP请求具有最初的30秒窗口,其中包含Web   进程必须返回响应数据(完成的响应或   一些响应数据表明该过程是活跃的)。   在最初的30秒内不发送响应数据的进程   窗口会在日志中看到H12错误。

我认为它的设计目的是防止dynos被绑定任何特定的时间长度

我的理解是,只要您向服务器发送请求,计时器就会启动。请求为routed后,计时器开始倒计时,直到您开始获取数据