在Rails中旋转后台任务
为Rails应用程序创建后台任务的首选方式是什么?我听说过Starling/Workling和好的剧本/跑步者,但我很好奇这是否成为事实上管理这种需求的方式?在Rails中旋转后台任务
谢谢!
澄清:我喜欢背景中的耙子的想法,但问题是,我需要持续运行或每10个小时运行一次。我不会奢望坐在网络请求上,它需要由服务器启动,与我网站上发生的活动异步。
瑞恩·贝茨创造了三个伟大的截屏可能真正帮助你:他谈到的各种优点和缺点使用每一个
。这应该有助于你开始。
我以前使用过守护进程插件。
async_observer是最好的。它不会做各种愚蠢的忙碌的等待事物,或者失去像椋鸟,没有数据库轮询等工作人员崩溃的工作......并且它非常好地集成到导轨中。
我推吨通过它的工作,它几乎不在乎。
我通常依靠cronjob scheduling,因为它提供了灵活性,无需编写单独的代码来安排它。任何可以从shell执行的东西都可以预定!无论是任何脚本(ruby/rake task/py/bash /任何其他你喜欢的),cronjob调度都可以轻松实现。
如果在Windows上运行,可以使用scheduled tasks
希望这有助于。
已经提到的大多数插件都可以完成这项工作,但是如果您只需要一个Rake任务就可以按照设定的时间表运行,那么实际上并不需要开始投入更多的体系结构。
只需添加一个cron作业,其执行
“CD /路径/到/导轨/应用; RAILS_ENV =生产耙运行:我:任务”
为什么另起炉灶,在类Unix操作系统几十年来一直在按计划运行任务?
看看Taskr。它基本上像cron一样,但是具有REST风格的Web界面。您可以使用它来安排任务以定期连接到您的Rails应用程序并触发任意代码(通过Taskr4rails插件)。它意味着很好地适合于围绕RESTful服务构建的系统,此外它还可以在任务返回错误,无法运行等情况下通知您。
+1对于八哥。 当前正在生产中使用它。它足够快速,可靠,并且代码基数非常小,您可以在几分钟内轻松理解它。 – Michael 2008-12-23 03:08:54