如何从Rails应用程序管理长时间运行的进程?

时间:2010-02-27 00:19:53

标签: ruby-on-rails ruby process background

我正在构建一个学习Rails的应用程序,我不知道如何解决这个问题。

我有一个表单,用户输入一些数据。验证数据,并启动服务器端进程(该过程可能需要5分钟到2小时)。我希望能够随时了解该过程的状态并能够杀死它。我不知道该怎么做就是开始这个​​过程。我知道system,反引号以及从Ruby代码执行外部命令的所有方法...问题是,如果我从控制器执行此操作,服务器是否仍会处理来自其他用户的请求?另外,这应该从控制器开始吗?我需要做的一件事是在页面内显示进程的输出(当它执行时)。

我应该如何开始&在Rails中管理(终止/重启)一个长时间运行的进程?我如何以每个用户可以开始自己的过程的方式来做到这一点?

2 个答案:

答案 0 :(得分:2)

我想你应该看看delayed_job。它应该完全符合您的要求。

答案 1 :(得分:0)

了解使用后台作业插件:http://backgroundrb.rubyforge.org/ 它具有良好的功能和社区支持。