【问题标题】:Background worker tasks taking a lot of time due to Rails env starting由于 Rails env 启动,后台工作任务需要花费大量时间
【发布时间】:2013-04-15 14:37:42
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-27
        相关资源
        最近更新 更多