Module: PublishingPlatformPuma
- Defined in:
- lib/publishing_platform_app_config/publishing_platform_puma.rb
Class Method Summary collapse
Class Method Details
.configure_rails(config) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/publishing_platform_app_config/publishing_platform_puma.rb', line 2 def self.configure_rails(config) config.port ENV.fetch("PORT", 3000) config.environment ENV.fetch("RAILS_ENV", "development") # `worker_timeout` specifies how many seconds Puma will wait before terminating a worker. timeout = if ENV.fetch("RAILS_ENV", "development") == "development" 3600 else Integer(ENV.fetch("PUMA_TIMEOUT", 15)) end config.worker_timeout timeout # When changing the min/max threads for Puma, also consider changing ActiveRecord to match. max_threads_count = ENV.fetch("RAILS_MAX_THREADS", 5) min_threads_count = ENV.fetch("RAILS_MIN_THREADS", max_threads_count) config.threads min_threads_count, max_threads_count # `workers` specifies the number of worker processes that Puma will fork. # The overall concurrency limit is worker count * max threads per worker. config.workers ENV.fetch("WEB_CONCURRENCY", 2) # `preload_app!` tells Puma to load application code before forking worker processes. # This reduces RAM wastage by making better use of copy-on-write. config.preload_app! # Allow puma to be restarted by `rails restart` command. config.plugin :tmp_restart end |