在Rails应用程序中创建非阻塞HTTP请求

时间:2011-10-11 02:08:17

标签: ruby-on-rails ruby http rest nonblocking

是否有人知道从Rails中发出传出非阻塞HTTP请求的方法?我最终将需要响应主体,并试图避免提出新的框架来保持简单。

由于

2 个答案:

答案 0 :(得分:0)

要模拟非阻塞部分,请设置低read_timeout。还要准备好捕获导致的超时错误:

request = Net::HTTP::Get.new(url)
http = Net::HTTP.new(url.host, url.port)

http.read_timeout = 1

begin
  http.request(request)
rescue Timeout::Error => e
end

我不知道一个基本的rails机制,它将进行非阻塞调用并接收响应。 Rails与请求/响应周期密切相关,因此通常基本控制器执行路径将在HTTP调用返回之前结束。

答案 1 :(得分:-1)

您正在寻找“背景工作”或“背景工作者”。这有各种各样的宝石。 This blog post可以很好地了解其中的内容。 delayed_job现在非常受欢迎。