Ruby / Sinatra应用程序 - 在循环过程中在屏幕上渲染循环结果

时间:2012-03-11 17:52:06

标签: ruby sinatra

在处理循环时,是否有任何好的宝石/模式用于在Ruby / Sinatra应用程序中呈现循环结果?目前我的循环可能需要1-2分钟才能完成处理,理想情况下我想实时输出结果,而不是让用户等待1-2分钟。

1 个答案:

答案 0 :(得分:2)

您可以做的是,当您第一次收到请求时,您可以在另一个线程中启动该进程,并使用“进程已启动标志”返回该请求。

现在这个线程正在运行循环,并将中间结果存储在数据库中(可能在临时表中)。

同时您的视图(我假设的JavaScript)将开始向此临时表发出Ajax请求,这将在循环运行时产生中间结果。

一旦完成该过程,ajax将返回'finish'并且请求可以停止。同时线程可以删除表并停止。