【发布时间】:2015-09-25 05:08:39
【问题描述】:
我正在使用 Sidekiq 处理作业。我正在使用最多允许 40 个连接的 Heroku 基本计划。我的理解是每个线程最多可以有1个连接。 Sidekiq 的默认线程数为 25。在我看来,我永远不会获得超过 25 个连接。
但是我收到了太多的 redis 连接错误。这怎么可能?我应该减少 Sidekiq 工人的数量吗?或者还有什么我可以做的吗?我目前有这样的 Procfile:
worker: bundle exec sidekiq
将其切换到此修复它吗?
worker: bundle exec sidekiq -c 10
Sidekiq 是否有可能没有正确关闭连接?此外,当我收到这个“连接太多”错误时,它基本上会导致网站瘫痪 - 有没有办法让如果它看起来应该做的优雅失败。
【问题讨论】:
-
是的,
-c 10这样做是合理的,并且会有所帮助。 -
thx @MikePerham,Sidekiq 有什么办法可以创建比它的处理器使用限制更多的连接?我想这是我的困惑。
-
当然,如果您以某种方式启动自己的线程。例如
Timeout模块将静默启动线程。