由于Rails env开始花费大量时间的背景工作者任务

时间:2013-04-15 14:37:42

标签: ruby-on-rails ruby ruby-on-rails-3 foreman

我正在每分钟运行rake任务,这些任务正在实例化Rails环境,目前每分钟都是Foreman和cron gem的工人。我担心的是,单独启动Rails每次消耗大约90%的处理器大约20秒。什么是处理类似这样的东西的最有效的方法,需要Rails环境进行数据库访问和一些库,但是不应该不断地启动整个系统?

除此之外,还有一些其他需要启动的工作人员,这使情况更加复杂。

2 个答案:

答案 0 :(得分:1)

如果我是你,我会查看一些异步消息传递框架:Resque vs Sidekiq?。使用这些Rails只需要加载一次,并且进程可以在必要时重用该Rails。我认为这是通过分叉完成的。不太确定。

答案 1 :(得分:1)

我们有一个类似的问题,我们每隔30秒运行一次赔率刮刀,切换到resque& resque-scheduler是一种更好的方式。

https://github.com/bvandenbos/resque-scheduler

http://railscasts.com/episodes/271-resque

http://railscasts.com/episodes/366-sidekiq