如何在Ruby on Rails 3中的长请求期间刷新数据

时间:2013-07-29 02:01:11

标签: ruby-on-rails ruby-on-rails-3

方案是用户可以单击按钮并调用方法,该方法将运行python脚本,脚本将执行大约1~2分钟,在执行期间,我想更新网页上的结果。

我怎么能实现这个目标?

我应该如何存储python脚本的输出并将其实时存储到webview中? 当任务完成后,webview将显示完成。

1 个答案:

答案 0 :(得分:1)

我过去完成此操作的方式是,当您发送长异步请求(python脚本)时,您将job_id返回到视图。后端作业不断将其进度更新为job_id上键入的数据库。

同时,视图使用轮询脚本(setTimeout)或JQuery.delay(),异步在适当的刷新间隔内轮询服务器。

对于大多数情况(但不是全部),我更喜欢这种轮询技术而不是替代推送