我正试图调用一个api(来自控制器(,将其生成的JSON响应存储在一个变量中,然后随意访问变量值的部分(在我看来(。以下代码挂起:
在控制器中:
parsed_response = JSON.parse(HTTP.get('http://localhost:3000/api/v2/storefront/products'))
@products = parsed_response['data']
在视图中:
<%= @products %>
上面什么都不呈现,挂起了一个进程,我不得不kill -9
来关闭服务器。我做错了什么,这是不是以某种方式连续快速地多次发出HTTP.get
请求,从而导致进程挂起?这与#parse和#get同时在一行中调用有关吗?
(我在这里使用gem‘http’(
我的猜测是,您的服务器(puma,unicon,..(接受有限数量的并行HTTP连接。
假设你的应用程序一次只接受一个连接:
- 您的请求
localhost:3000/page_1
,因此您占用了该连接。在此连接结束之前,任何人都无法连接到您的服务器 localhost:3000/page_1
想要连接到localhost:3000/page_2
,它必须等待活动连接结束。由于它无法连接,因此等待。。。直到超时或终止服务器