Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails后台请求_Ruby On Rails_Parallel Processing_Resque_Rails Activejob - Fatal编程技术网

Ruby on rails RubyonRails后台请求

Ruby on rails RubyonRails后台请求,ruby-on-rails,parallel-processing,resque,rails-activejob,Ruby On Rails,Parallel Processing,Resque,Rails Activejob,在我的RubyonRails应用程序中,用户可以授予我代表他们发送推文的权限,这样他们就可以从应用程序发送预先填充的推文。这就是流程: 请求我的服务器 对twitter服务器的服务器请求 根据twitter的回复,我的用户得到了回复 对twitter的请求阻止了我的应用程序。我将ActiveJob与resque一起用于与第三方应用程序和电子邮件的其他通信,但在本例中,我希望基于twitter服务器响应给出用户响应 有可能吗 请求我的服务器 对twitter服务器的服务器请求 将其置于等待状

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

  • 请求我的服务器
  • 对twitter服务器的服务器请求
  • 根据twitter的回复,我的用户得到了回复
对twitter的请求阻止了我的应用程序。我将ActiveJob与resque一起用于与第三方应用程序和电子邮件的其他通信,但在本例中,我希望基于twitter服务器响应给出用户响应

有可能吗

  • 请求我的服务器
  • 对twitter服务器的服务器请求
  • 将其置于等待状态,以便我的服务器可以处理其他请求
  • 在twitter服务器响应上获得通知并将响应发送给我的用户

发送tweet的用户必须等待,这不是问题。我只是不希望其他用户等待。一个解决方案是使用ActiveJob和rescue从twitter请求,当twitter响应时,您可以使用实时引擎回复用户

另一个解决方案是使用支持多线程的服务器(puma、rainbows!)


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

你在用独角兽吗,乘客?还是美洲狮?当第一个请求处于“等待”状态时,您是否尝试在第二个窗口/选项卡中运行另一个请求?您可能会发现,一切都已经按照您希望的方式运行了。@ilanberci我将乘客与Nginx一起使用。@Jon我希望如此。我将twitter url更改为不存在(因此被阻止,直到超时)。在另一个浏览器中,应用程序直到超时后才响应。