Ruby on Rails请求在后台

时间:2015-11-30 15:41:20

标签: ruby-on-rails parallel-processing resque rails-activejob

在我的Ruby on Rails应用程序中,用户可以授予我代表他们发推文的权限,这样他们就可以从应用程序发送预填充的推文。这是流程:

  • 请求到我的服务器
  • 服务器请求到Twitter服务器
  • 根据twitter的回复,我的用户会收到回复。

对twitter的请求会阻止我的应用。我将ActiveJob与resque一起用于与第三方应用程序和电子邮件的其他通信,但在这种情况下,我想根据twitter服务器响应给予用户响应。

有可能以某种方式吗?:

  • 请求到我的服务器
  • 服务器请求到Twitter服务器
  • 将此等待,以便我的服务器可以提供其他请求
  • 收到有关Twitter服务器响应的通知并向我的用户发送回复

发送推文的用户必须等待,这不是问题。我只是不希望其他用户等待。

1 个答案:

答案 0 :(得分:2)

一种解决方案是使用ActiveJob并通过twitter进行救援请求,当Twitter响应时,您可以使用实时引擎回复用户。

另一种解决方案是使用支持多线程的服务器(puma,彩虹!)。

我个人认为我会使用实时服务来解决这个问题。虽然它增加了一些开销,但从长远来看,它将有助于维持更多的并发用户。