Ruby on rails 在Rails 3.0.3中使用Net::HTTP会导致超时::错误

Ruby on rails 在Rails 3.0.3中使用Net::HTTP会导致超时::错误,ruby-on-rails,timeout,Ruby On Rails,Timeout,我正在试验Rails 3.0.3中的Net::HTTP,但由于超时::错误,无法使其工作 我有两个控制器:控制器A由控制器B调用 控制器A(xml\u provider\u Controller.rb): 有一次我叫“http://0.0.0.0:3000/mains/search“,我得到一个超时::错误 日志上写着: Started GET "/mains/search" for 127.0.0.1 at 2011-01-30 10:48:17 +0100 opening connectio

我正在试验Rails 3.0.3中的Net::HTTP,但由于超时::错误,无法使其工作

我有两个控制器:控制器A由控制器B调用

控制器A(xml\u provider\u Controller.rb):

有一次我叫“http://0.0.0.0:3000/mains/search“,我得到一个超时::错误

日志上写着:

Started GET "/mains/search" for 127.0.0.1 at 2011-01-30 10:48:17 +0100
opening connection to localhost...
opened
<- "POST /xmlprovider/availabilityByDateRequest/ HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Ruby\r\nConnection: close\r\nHost: localhost:3000\r\nContent-Length: 136\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"
<- "<?xml version='1.0' encoding='UTF-8'?><somedata></somedata>"
Conn close because of error Timeout::Error
Timeout::Error (Timeout::Error):
  app/controllers/mains_controller.rb:43:in `search'
Processing by MainsController#search as HTML
...
Started POST "/xmlprovider/availabilityByDateRequest/" for 127.0.0.1 at 2011-01-30 10:48:27 +0100
  Processing by XmlProviderController#availabilityByDateRequest as XML
  Parameters: {"<?xml version"=>"'1.0' encoding='UTF-8'?><somedata><name>Test Name 1</name><description>Some data for Unit testing</description></somedata>"}
Rendered xml_provider/availabilityByDateRequest.xml.builder (8.8ms)
Completed 200 OK in 14ms (Views: 13.9ms | ActiveRecord: 0.0ms)
2011-01-30 10:48:17+0100开始获取127.0.0.1的“/mains/search”
正在打开与本地主机的连接。。。
开的

您是否在“当前应用程序”中过账?如果是,您可能需要确保至少有两个后端进程处理请求,否则这一个方法将自身锁定。如果您有两个后端进程处理请求,那么您最好希望它们不是同时发出相同的请求;)诸如此类。

对于其他任何有NET::HTTP超时问题的人,例如,在同一应用程序中运行API并通过HTTP连接到它时,假设Unicorn是所选的服务器(我确信类似的方法也适用于其他服务器),将以下内容添加到
config/Unicorn.rb

worker_processes 2
当然,您可以有>2个进程,但2是最小值

match 'xmlprovider/availabilityByDateRequest' => 'xml_provider#availabilityByDateRequest', :via => :post, :format => 'xml'
Started GET "/mains/search" for 127.0.0.1 at 2011-01-30 10:48:17 +0100
opening connection to localhost...
opened
<- "POST /xmlprovider/availabilityByDateRequest/ HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Ruby\r\nConnection: close\r\nHost: localhost:3000\r\nContent-Length: 136\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"
<- "<?xml version='1.0' encoding='UTF-8'?><somedata></somedata>"
Conn close because of error Timeout::Error
Timeout::Error (Timeout::Error):
  app/controllers/mains_controller.rb:43:in `search'
Processing by MainsController#search as HTML
...
Started POST "/xmlprovider/availabilityByDateRequest/" for 127.0.0.1 at 2011-01-30 10:48:27 +0100
  Processing by XmlProviderController#availabilityByDateRequest as XML
  Parameters: {"<?xml version"=>"'1.0' encoding='UTF-8'?><somedata><name>Test Name 1</name><description>Some data for Unit testing</description></somedata>"}
Rendered xml_provider/availabilityByDateRequest.xml.builder (8.8ms)
Completed 200 OK in 14ms (Views: 13.9ms | ActiveRecord: 0.0ms)
worker_processes 2