我设计下的Rails 3.2.8的web服务,将针对用户执行外部程序,预期使用情况是:的Rails 3异步外部程序
1)用户填写的参数表,并提交请求
2)Rails根据用户请求执行Matlab程序。它会持续几分钟(少于3分钟),并生成一个结果文件,显示程序已完成
3)在此过程中,将用户重定向到页面显示“加载”状态,并监视结果文件是否有已生成
4)生成结果文件后,通过AJAX重新加载页面并显示结果。
有没有“轨道”的方式来做到这一点?我之前在JAVA SSH框架中做过这个,但是非常痛苦。我需要什么工具?例如,我是否需要像backgroundjob 这样的宝石来管理任务队列?或者有没有“一站式”宝石可以处理这个问题?谢谢!
您可以使用Resque管理后台任务,并像剑圣(尽管它过时了,读了笔者的建议GitHub的页面)将数据推送到客户端时,后台作业完成。 –
你可能全都在这,但以防万一:为*非常小心*有这样的,你不把任何unsanitised数据输入到表格到您的命令行的东西,否则你是一个“RM - rf/*'远离灾难...... –
谢谢保罗,我会非常小心的对我的验证:)。同样感谢saverio,在接下来的两天里我有点忙,但是会尽快尝试你的建议,看看是否接受它。 – Xiaoli