如何检测我的代码是否在Sidekiq服务器或Puma"内部"运行?

Dan*_*ola 13 ruby connection-pooling sidekiq puma ruby-on-rails-4

我正在使用Puma作为Web服务器,而Sidekiq作为我的队列运行器.

对于多个事物(数据库连接,Redis连接,其他外部服务),我正在使用ConnectionPool gem来管理对连接的安全访问.

现在,根据我是在Sidekiq还是Puma的上下文中运行,我需要这些池的大小不同(分别与Sidekiq线程或Puma线程的数量一样大,它们是不同的)

在初始化程序中,了解基于执行上下文建立连接池的最佳方法的最佳方法是什么?

谢谢!

Mik*_*ham 44

当你没有在Sidekiq进程内部运行时,你使用Sidekiq.server?哪个返回nil.