在生产中运行 puma 工人,但不在开发中运行

Cha*_*iam 3 ruby ruby-on-rails puma devops

我正在运行以下 puma 配置

threads_count = Integer(ENV["DB_POOL"] || ENV["MAX_THREADS"] || 15)
threads threads_count, threads_count
workers 3
preload_app!

rackup      DefaultRackup
port        ENV["PORT"]     || 3000
environment ENV["RACK_ENV"] || "development"

on_worker_boot do
  ActiveSupport.on_load(:active_record) do
    ActiveRecord::Base.establish_connection
  end
end

before_fork do
  ActiveRecord::Base.connection_pool.disconnect!
end
Run Code Online (Sandbox Code Playgroud)

它非常适合生产,但我不想启动 3 个工人或在开发中使用 webrick。我尝试在环境检查中包装工人特定的代码,但这破坏了 puma DSL。在开发中以非集群模式运行 puma 的任何想法?

sco*_*rix 7

Railspuma 配置文件中没有定义,所以Rails.env不能在这里使用,但RACK_ENV没关系。

workers(ENV["RACK_ENV"] == "production" ? 3 : 0)
Run Code Online (Sandbox Code Playgroud)