Как отключить PumaWorkerKiller в разработке - PullRequest
0 голосов
/ 08 июня 2019

Я использую PumaWorkerKiller, используя этот код в config/puma.rb:

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

Я хочу остановить его работу в режиме разработки.Я попытался сделать это, поместив охранное предложение в виде

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

. Это работает в процессе разработки, но вызывает ошибку в работе, в результате чего Rails является неизвестной константой.Предположительно, он загружается в производство раньше, чем в процессе разработки.

Как отключить PumaWorkerKiller в разработке, но сохранить его в работе?

1 Ответ

1 голос
/ 08 июня 2019

Puma должна знать, в какой среде она находится без ссылок на рельсы.

Вот как выглядит мой 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
...