我正在每分钟运行rake任务,这些任务正在实例化Rails环境,目前每分钟都是Foreman
和cron gem的工人。我担心的是,单独启动Rails每次消耗大约90%的处理器大约20秒。什么是处理类似这样的东西的最有效的方法,需要Rails环境进行数据库访问和一些库,但是不应该不断地启动整个系统?
除此之外,还有一些其他需要启动的工作人员,这使情况更加复杂。
答案 0 :(得分:1)
如果我是你,我会查看一些异步消息传递框架:Resque vs Sidekiq?。使用这些Rails只需要加载一次,并且进程可以在必要时重用该Rails。我认为这是通过分叉完成的。不太确定。
答案 1 :(得分:1)
我们有一个类似的问题,我们每隔30秒运行一次赔率刮刀,切换到resque& resque-scheduler是一种更好的方式。
https://github.com/bvandenbos/resque-scheduler