如何在开发中关闭PumaWorkerKiller

时间:2019-06-08 14:26:06

标签: ruby-on-rails puma puma-worker-killer

我正在PumaWorkerKiller中使用此代码使用config/puma.rb

  before_fork do
    PumaWorkerKiller.config do |config|
      config.ram           = 512 # mb
    end
    PumaWorkerKiller.start
  end

我想停止它在开发模式下运行。我试图通过在like中放置一个保护子句来做到这一点

if Rails.env.production?
  # PumaWorkerKiller code goes here
end

这在开发中有效,但在生产中引发错误,结果是Rails是未知常数。据推测,它在生产中的加载要早于开发。

如何关闭开发中的PumaWorkerKiller,但保持其在生产环境中正常工作?

1 个答案:

答案 0 :(得分:1)

Puma应该知道它所处的环境,而无需引用rails。

这是我的config/puma.rb的样子,省略了不相关的行:

environment ENV["RACK_ENV"] || "development"

before_fork do
  require "puma_worker_killer"

  PumaWorkerKiller.config do |config|
    config.ram           = (ENV["PUMA_WORKER_KILLER_RAM"] || 1024).to_i # mb
  end
  PumaWorkerKiller.start unless get(:environment) == "development"
end