我需要在我的Rails应用程序中建立到外部服务的连接。我在初始化器中这样做。问题是服务库使用线程交付(我需要,因为我不能让它陷入请求),但独角兽的生命周期导致线程被杀死,工作人员从未看到它。一种解决方案是对每个请求调用一个新的连接,但这是不必要的浪费。如何检测导轨应用程序是否在Unicorn下运行?
的最佳解决方案是设置向上在独角兽配置在after_fork块的连接。这个问题不会在独角兽之外被调用,这意味着我们无法在开发/测试环境中对其进行测试。
所以现在的问题是,什么是决定一个Rails应用程序是否麒麟(主或工作进程)下运行的最佳方式?