main
 1# frozen_string_literal: true
 2
 3# Puma can serve each request in a thread from an internal thread pool.
 4# The `threads` method setting takes two numbers: a minimum and maximum.
 5# Any libraries that use thread pools should be configured to match
 6# the maximum value specified for Puma. Default is set to 5 threads for minimum
 7# and maximum; this matches the default thread size of Active Record.
 8#
 9threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
10threads threads_count, threads_count
11
12# Specifies the `port` that Puma will listen on to receive requests
13port        ENV.fetch("PORT") { 3000 }
14
15# Specifies the `environment` that Puma will run in.
16#
17environment ENV.fetch("RAILS_ENV") { "development" }
18
19# Specifies the number of `workers` to boot in clustered mode.
20# Workers are forked webserver processes. If using threads and workers together
21# the concurrency of the application would be max `threads` * `workers`.
22# Workers do not work on JRuby or Windows (both of which do not support
23# processes).
24#
25workers ENV.fetch("WEB_CONCURRENCY") { 2 }
26
27# Use the `preload_app!` method when specifying a `workers` number.
28# This directive tells Puma to first boot the application and load code
29# before forking the application. This takes advantage of Copy On Write
30# process behavior so workers use less memory.
31#
32preload_app!
33
34# Allow puma to be restarted by `rails restart` command.
35plugin :tmp_restart