【发布时间】:2015-11-30 15:41:20
【问题描述】:
在我的 Ruby on Rails 应用程序中,用户可以授予我代表他们发推文的权限,这样他们就可以从应用程序发送预填充的推文。这是流程:
- 向我的服务器请求
- 向 twitter 服务器发出服务器请求
- 根据 twitter 的响应,我的用户得到了响应。
对 twitter 的请求阻止了我的应用程序。我使用带有 resque 的 ActiveJob 与 3rd 方应用程序和电子邮件进行其他通信,但在这种情况下,我想根据 twitter 服务器响应给用户响应。
有可能以某种方式做到吗?:
- 向我的服务器请求
- 向 twitter 服务器发出服务器请求
- 等待,以便我的服务器可以处理其他请求
- 收到有关 twitter 服务器响应的通知并将响应发送给我的用户
发送推文的用户必须等待不是问题。我只是不希望其他用户等待。
【问题讨论】:
-
你在使用独角兽吗? unicorn.bogomips.org,乘客? github.com/phusion/passenger 还是彪马? github.com/puma/puma
-
您是否尝试过在第一个窗口/选项卡处于“等待”状态时在第二个窗口/选项卡中运行另一个请求?您可能会发现一切都在按照您的意愿进行。
-
@ilanberci 我在 Nginx 中使用乘客。
-
@Jon 我希望如此。我将 twitter url 更改为不存在的(因此被阻止直到超时)。在另一个浏览器中,应用程序直到超时才响应。
标签: ruby-on-rails parallel-processing resque rails-activejob