ruby-on-rails – 在Rails中组织工作进程的最佳方法是什么?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Rails中组织工作进程的最佳方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常有一些代码应该按计划运行或作为具有一些参数的后台进程运行.常见的因素是它们在调度过程之外运行,但需要访问Rails环境(以及传入的参数).

什么是组织这个的好方法,为什么?如果您想使用特定的插件或宝石,请解释为什么您找到方便 – 不要列出您使用的插件.

解决方法

对我来说,不想维护大量额外的基础设施是一个关键的优先事项,所以我使用了在Rails之外运行的数据库支持的队列.

在我的情况下,我使用了background_jobdelayed_job.使用background_job,工作人员通过cron继续运行,所以没有守护进程管理.有了delayed_job,我使用Heroku,让他们担心.

使用delayed_job,您可以传递与后台工作人员需要运行的参数一样多的参数.

Delayed::Job.enqueue(MyJob.new(param[:one],param[:two],param[:three])

除了通过cron使用脚本/运行程序之外,我还没有找到一个很好的解决方案来运行东西(我更喜欢在Rake任务中使用脚本/运行程序,因为我发现测试代码更容易).

我从来没有必须有一个定期的后台进程,需要访问一个特定的Rails请求,所以没有太多的问题.

我知道还有其他更冷却的系统具有更多的功能,但这对我来说很有效,并帮助我避免处理设置大量新服务来管理.

猜你在找的Ruby相关文章