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

时间:2015-02-06 13:40:36

标签: ruby ruby-on-rails-4 connection-pooling sidekiq puma

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:43)

您使用的Sidekiq.server?在未在Sidekiq进程内运行时返回nil

答案 1 :(得分:0)

我不了解您的具体案例(puma / sidekiq),但一般情况下,您可以在$PROGRAM_NAME变量中找到此信息。同样类似的是$0__FILE__