2

我每分钟都在运行 rake 任务,这些任务目前大约每分钟都在实例化 Rails 环境,作为带有Foremancron gem 的工作人员。我担心仅启动 Rails 会消耗大约 90% 的处理器,每次大约 20 秒。处理这样的事情的最有效方法是什么,需要 Rails 环境来访问数据库和一些库,但不应该如此频繁地启动整个系统?

除此之外,还有一些其他工人需要开始工作,因此情况更加复杂。

4

2 回答 2

1

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

于 2013-04-15T15:02:31.843 回答
1

对于每 30 秒运行一次的赔率刮板,我们遇到了类似的问题,切换到 resque 和 resque-scheduler 是更好的方法。

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

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

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

于 2013-04-15T15:32:32.473 回答