Rails 再次请求同一域名下不同接口遇到的问题,寻求帮助

wdrsam · 2017年10月26日 · 最后由 dddd1919 回复于 2017年10月26日 · 1163 次阅读

rails4.2,ruby2.2.0 在控制器中,请求过来后,将生成一些参数,再访问一次本域名下的其他接口。 例: a 请求 www.xxx.com/api/test, 生成一些参数,用 mechanize 把请求包装好(请求部分代码确定没错),访问 www.xxx.com/api/test1

这时会卡顿个 1 分钟,报下面的错

Net::ReadTimeout - Net::ReadTimeout:
  /Users/qianfandu/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/protocol.rb:158:in `rescue in rbuf_fill'
...
...

奇怪的是,在报错完后,a 请求最终触发 api/test1 里设置的断点,也就是最终请求成功了。但为什么会卡顿这么久,是跟某些安全机制有关吗?有没有什么办法可以避免...

controller 里请求应用的另一个接口? 如果是的话,开发环境启动的服务只能同时处理一个请求,你在请求里发起第二次请求直接挂起,然后只能超时,接下来服务再处理第二个请求

dddd1919 回复

是的,在 controller 请求另一个接口。有什么好办法或思路吗。。?

为何同一个应用的调用要走接口?不能抽成一个方法来共用?

wdrsam 回复

同楼下,定一个公共 services 就够了,自己调用自己不是很别扭么

需要 登录 后方可回复, 如果你还没有账号请 注册新账号