【发布时间】:2016-11-19 01:23:11
【问题描述】:
我有一个 Rails 控制器,当用户加载特定页面时我会调用它。控制器调用第 3 方 Web 服务。但是,当 Web 服务关闭时,我的 Rails 控制器就会挂起。我无法导航到另一个页面、注销或刷新页面...所有这些任务都等待 Web 服务调用完成后再执行。如果 Web 服务调用从未完成,我必须重新启动我的 Rails 应用程序才能使其再次运行。
是否有防止这种情况发生的标准方法?我正在使用Faraday gem 进行网络服务调用。我想我可以在进行 Web 服务调用时设置一个超时值。但是,理想情况下,我希望导航到另一个页面的任何用户操作立即停止此 Web 服务调用。这可能吗?
【问题讨论】:
-
您使用的机架实现服务器是什么?
-
@AmirRaminfar 我不确定我使用的是哪个 Rack 实现。你碰巧知道如何检查这个吗?
-
如果您不知道,那么您可能正在使用 Webrick,它是 Rails 中的默认服务器。你不应该在生产中使用它。
标签: ruby-on-rails web-services faraday