代码之家  ›  专栏  ›  技术社区  ›  Daniel Magliola

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

  •  17
  • Daniel Magliola  · 技术社区  · 10 年前

    我使用Puma作为web服务器,Sidekiq作为队列管理器。

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

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

    在初始化器中,了解基于执行上下文的连接池有多大的最佳方法是什么?

    谢谢

    2 回复  |  直到 10 年前
        1
  •  52
  •   Eric Saboia    7 年前

    您使用 Sidekiq.server? 返回 nil 当不在Sidekiq进程本身内部运行时。

        2
  •  0
  •   stoodfarback    10 年前

    我不知道你的具体情况( puma / sidekiq ),但通常您可以在 $PROGRAM_NAME 变量类似的还有 $0 __FILE__ .