我正在编写一个Web应用程序,需要运行后台进程,每分钟左右轮询一次Web服务,然后查询我的Rails数据库,并通过Twitter向应用程序的用户发送警报。我已经对此进行了很多研究,但我觉得我只是绕圈子去了。我遇到过delayed_job,background_job和其他一些选项,比如在Railscast中创建一个自定义守护进程。有没有人对最佳方法有任何建议?该过程必须在后台持续运行,并且不会被前端的事件触发。任何帮助或指导将不胜感激。
答案 0 :(得分:1)
为什么不创建一个rake任务并将其添加到CRON执行中?
您甚至可以使用Whenever为您配置此功能。
答案 1 :(得分:0)
我使用了Beanstalkd,可以推荐它。
答案 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)
我们可以使用backgroundrb
或unix crontab
。
Crontab
, heavy loaded process to run asynchronously
将完成此任务。
Backgroundrb
会在生产环境中消耗大量内存和CPU。此外,我们还需要配置monitor tool
以确保后台进程正在运行。