解决方法
对我来说,不想维护大量额外的基础设施是一个关键的优先事项,所以我使用了在Rails之外运行的数据库支持的队列.
在我的情况下,我使用了background_job
和delayed_job.使用background_job,工作人员通过cron继续运行,所以没有守护进程管理.有了delayed_job,我使用Heroku,让他们担心.
使用delayed_job,您可以传递与后台工作人员需要运行的参数一样多的参数.
Delayed::Job.enqueue(MyJob.new(param[:one],param[:two],param[:three])
除了通过cron使用脚本/运行程序之外,我还没有找到一个很好的解决方案来运行东西(我更喜欢在Rake任务中使用脚本/运行程序,因为我发现测试代码更容易).
我从来没有必须有一个定期的后台进程,需要访问一个特定的Rails请求,所以没有太多的问题.
我知道还有其他更冷却的系统具有更多的功能,但这对我来说很有效,并帮助我避免处理设置大量新服务来管理.