我们有一个非常独特的用例,我们希望Rails控制器使用Net :: HTTP访问Rails应用程序中的路由。可以这样做吗?我尝试这样做时,我目前正在收到超时。当uri是一个单独的Rails应用程序时,当前代码有效,但当uri属于应用程序本身时则不行。这是当前控制器操作的要点:
def export_data
uri = URI("http://localhost:3000")
@data = JSON.parse( Net::HTTP.get(uri) )
respond_to do |format|
...
end
end
忘掉我们为什么要这样做。为什么这不起作用?是否可以进行修改以使其工作?提前谢谢!
答案 0 :(得分:8)
它不起作用,因为您没有使用多线程服务器。您的请求即将进入并阻止服务器,直到它完成。在此期间,您向本地主机发出了未被处理的请求。
简单的解决方案?试试美洲狮。其他简单的解决方案,旋转两个rails实例,连接到第二个实例。