我正在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
,但保持其在生产环境中正常工作?
答案 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