如何检测我的代码是 运行 "inside" Sidekiq 服务器还是 Puma?

How can I detect whether my code is running "inside" Sidekiq server or Puma?

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

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

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

在您的初始化程序中,根据执行上下文了解连接池大小的最佳方法是什么?

谢谢!

我不知道你的具体情况 (puma/sidekiq),但通常你可以在 $PROGRAM_NAME 变量中找到此信息。类似的还有 [=13=]__FILE__.

您使用 Sidekiq.server? 而 returns nil 而不是 运行 在 Sidekiq 进程本身中。