这个想法是让一个页面有一个并行进程,同时显示一个加载.gif或JS游戏,因为等待太长了,就像这样:
所以,这基本上就是这个想法,进入一个控制器,这个控制器需要很长时间才能显示他的页面 娱乐用户,并通过ajax,不断检查并行过程是否完成,因此显示一个按钮继续下一页
考虑这是以这种方式完成的,因为进程本身需要超过10分钟的时间,因此服务器的超时会在完成之前终止进程,因此在这个想法中,当显示wait.html.erb时,超时完成同时并行过程还活着
还要考虑我还没有做任何事情,因为我不知道这个想法是否可行,所以我的问题是它是否可能?怎么做?
答案 0 :(得分:0)
您可以简单地使用后台处理工作程序(在此示例中为Sidekiq):
class HardWorker
include Sidekiq::Worker
def perform(user_id)
VeryLongProcess.run
notify(user_id)
end
end
notify
方法可以将通知推送给用户(例如使用Websockets),也可以只在Redis或其他已完成作业的DB中存储设置。这反过来可以通过您的AJAX调用来读取。