在处理循环时,是否有任何好的宝石/模式用于在Ruby / Sinatra应用程序中呈现循环结果?目前我的循环可能需要1-2分钟才能完成处理,理想情况下我想实时输出结果,而不是让用户等待1-2分钟。
答案 0 :(得分:2)
您可以做的是,当您第一次收到请求时,您可以在另一个线程中启动该进程,并使用“进程已启动标志”返回该请求。
现在这个线程正在运行循环,并将中间结果存储在数据库中(可能在临时表中)。
同时您的视图(我假设的JavaScript)将开始向此临时表发出Ajax请求,这将在循环运行时产生中间结果。
一旦完成该过程,ajax将返回'finish'并且请求可以停止。同时线程可以删除表并停止。