【问题标题】:Heroku Rails ClearDB Resque ConnectionsHeroku Rails ClearDB Resque 连接
【发布时间】:2013-08-25 06:33:48
【问题描述】:

如果我在 Resque 中有 20 个不同的工作,这是否意味着我的 ClearDB 数据库可能有 20 多个连接?如何监控我的 ClearDB 正在使用的连接数?

【问题讨论】:

    标签: mysql ruby-on-rails ruby ruby-on-rails-3 heroku


    【解决方案1】:

    您在 Resque 有多少工作并不重要。你有多少工人很重要。在 Resque 中,每个工作人员都在一个单独的进程中运行,因此打开了自己与数据库的连接。

    如果担心连接数,您可以尝试使用Sidekiq。 Sidekiq 与 Resque 的 API 兼容,但其工作线程在单个进程中运行。这样,您应该能够使用共享连接池来管理同时打开的连接数。

    【讨论】:

    • 哪一个会更好地扩展?我宁愿在不同的工作人员中拥有 30 个到我的数据库的连接,还是在单个胖进程中拥有多个线程?
    • 这一切都取决于。 :) 如果您正在执行大量 IO 并且您的代码是线程安全的,请使用 Sidekiq 将它们全部放在一个进程中以最小化内存使用量。如果您使用大量 CPU,则每个工作人员都应该有自己的专用进程。希望对您有所帮助。
    猜你喜欢
    • 2017-06-22
    • 1970-01-01
    • 2020-11-21
    • 2021-09-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多