【问题标题】:Why ever have more than one Sidekiq client connection for a single-threaded process?为什么单线程进程有多个 Sidekiq 客户端连接?
【发布时间】:2017-04-07 02:04:51
【问题描述】:

关于设置 Sidekiq 客户端与 redis 的连接数的简单问题(例如,Sidekiq.configure_client do |config| { config.redis = { size: 5 } })。

为什么要为单线程进程将其设置为大于 1?假设您正在运行 Unicorn Web 服务器 - 那么我不明白为什么每个 Unicorn 进程需要超过 1 个连接。我的想法是,由于 Unicorn 进程在 I/O 上阻塞,它不能真正发出任何真正并发的网络请求(例如到 redis),因此超过 1 个连接是没有意义的(除非你使用 EventMachine 或其他东西像这样)?

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails concurrency redis sidekiq unicorn


    【解决方案1】:

    如果您在 unicorn 中创建自己的线程,您将需要多个线程。此外,连接池是惰性的,因此如果您只需要一个连接,它只会创建一个连接。

    【讨论】:

    • 有道理,非常感谢 Sidekiq!喜欢它。
    猜你喜欢
    • 2021-11-03
    • 2015-03-24
    • 2011-09-26
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2010-11-25
    相关资源
    最近更新 更多