JP *_*son 32 ruby ruby-on-rails
我有一个Rails应用程序,不幸的是在向控制器发出请求之后,需要做一些需要一段时间的运算.Rails中为长期运行的任务或请求提供反馈或进度的最佳做法是什么?这些控制器方法通常持续60秒以上.
我不关心客户端......我计划每隔一秒左右发出一次Ajax请求并显示进度指示器.我只是不确定Rails最佳实践,我是否创建了一个额外的控制器?我能做些什么聪明的事吗?我希望只使用Rails专注于服务器端的答案.
在此先感谢您的帮助.
编辑:
如果重要,http请求适用于PDF.然后我将Rails与Ruport一起生成这些PDF.问题是,这些PDF非常大并且包含大量数据.使用后台任务仍然有意义吗?假设平均PDF需要大约一分钟到两分钟,这会使我的Rails应用程序在此期间对任何其他服务器请求没有响应吗?
编辑2:
好的,经过进一步调查后,似乎我的Rails应用程序确实没有响应任何其他HTTP请求后请求大型PDF. 所以,我想现在的问题是:什么是最好的线程/后台机制? 它必须稳定并保持稳定.我很惊讶Rails没有内置的东西.
编辑3:
我已阅读此页:http://wiki.rubyonrails.org/rails/pages/HowToRunBackgroundJobsInRails.我很想阅读有关这些工具的各种经验.
编辑4:
如果重要的话,我正在使用Passenger Phusion"modrails".
编辑5:
我正在使用Windows Vista 64位开发机器; 但是,我的生产机器是Ubuntu 8.04 LTS.我应该考虑为我的开发机器切换到Linux吗?解决方案是否适用于两者?
小智 24
该Workling插件允许您安排在队列中后台任务(它们将执行冗长的任务).从版本0.3开始,您可以向工作人员询问其状态,这将允许您显示一些漂亮的进度条.
Workling的另一个很酷的功能是可以切换异步后端:你可以使用DelayedJobs,Spawn(经典前叉),Starling ......
我有一个非常大的卷网站,生成大量的大型CSV文件.这些有时需要几分钟才能完成.我做以下事情:
如果你打算一次只运行一两个,但是如果你想扩展...... :)这可能太重了
| 归档时间: |
|
| 查看次数: |
20565 次 |
| 最近记录: |