Rails - 加载页面并行

时间:2015-09-04 22:57:13

标签: ruby-on-rails parallel-processing

这个想法是让一个页面有一个并行进程,同时显示一个加载.gif或JS游戏,因为等待太长了,就像这样:

enter image description here

所以,这基本上就是这个想法,进入一个控制器,这个控制器需要很长时间才能显示他的页面 娱乐用户,并通过ajax,不断检查并行过程是否完成,因此显示一个按钮继续下一页

考虑这是以这种方式完成的,因为进程本身需要超过10分钟的时间,因此服务器的超时会在完成之前终止进程,因此在这个想法中,当显示wait.html.erb时,超时完成同时并行过程还活着

还要考虑我还没有做任何事情,因为我不知道这个想法是否可行,所以我的问题是它是否可能?怎么做?

1 个答案:

答案 0 :(得分:0)

您可以简单地使用后台处理工作程序(在此示例中为Sidekiq):

class HardWorker
  include Sidekiq::Worker
  def perform(user_id)
    VeryLongProcess.run
    notify(user_id)
  end
end

notify方法可以将通知推送给用户(例如使用Websockets),也可以只在Redis或其他已完成作业的DB中存储设置。这反过来可以通过您的AJAX调用来读取。