Rails中的后台进程3

时间:2012-02-02 13:08:56

标签: ruby-on-rails background-process

我正在编写一个Web应用程序,需要运行后台进程,每分钟左右轮询一次Web服务,然后查询我的Rails数据库,并通过Twitter向应用程序的用户发送警报。我已经对此进行了很多研究,但我觉得我只是绕圈子去了。我遇到过delayed_job,background_job和其他一些选项,比如在Railscast中创建一个自定义守护进程。有没有人对最佳方法有任何建议?该过程必须在后台持续运行,并且不会被前端的事件触发。任何帮助或指导将不胜感激。

5 个答案:

答案 0 :(得分:1)

为什么不创建一个rake任务并将其添加到CRON执行中?

您甚至可以使用Whenever为您配置此功能。

答案 1 :(得分:0)

我使用了Beanstalkd,可以推荐它。

http://railscasts.com/episodes/243-beanstalkd-and-stalker

答案 2 :(得分:0)

您可以简单地将cron用于必须每X分钟,几小时等执行的任务。

gem只要用rails设置它就很有用:https://github.com/javan/whenever

我对delayed_job知之甚少。但是你可以查看一些教程,例如关于heroku的文章:http://devcenter.heroku.com/articles/delayed-job

答案 3 :(得分:0)

我将delayed_job用于我们的应用程序。

在研究这个问题时,我们研究了很多网站,最后我们可以应用它。

我们在以下链接中应用我们的经验

http://www.kyybaventures.com/blog/rails-delayed-job#more-2916

希望这有助于开始使用rails 3中的后台进程。

答案 4 :(得分:0)

我们可以使用backgroundrbunix crontab

如果您不希望在应用程序的请求处理周期内发送任何Crontab

heavy loaded process to run asynchronously将完成此任务。

如果任何进程挂起,

Backgroundrb会在生产环境中消耗大量内存和CPU。此外,我们还需要配置monitor tool以确保后台进程正在运行。