diff --git a/config/puma.rb b/config/puma.rb index c9191d08..ab8c0f3d 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -8,10 +8,9 @@ # Puma can serve each request in a thread from an internal thread pool. # The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. -thread_count = Sagittarius::Configuration.config[:rails][:threads] +# Default is set to 5 threads for minimum and maximum; this matches the default +# thread size of Active Record. +thread_count = Sagittarius::Configuration.config[:rails][:web][:threads] threads thread_count, thread_count # Specifies that the worker count should equal the number of processors in production. diff --git a/config/sagittarius.example.yml b/config/sagittarius.example.yml index 121df208..3a2576e4 100644 --- a/config/sagittarius.example.yml +++ b/config/sagittarius.example.yml @@ -1,5 +1,4 @@ rails: - threads: 3 log_level: info mailer: from: Code0 @@ -9,10 +8,12 @@ rails: username: testmail@code0.tech password: changeme web: + threads: 3 port: 3000 bind: # For example: tcp://0.0.0.0:3000 force_ssl: grpc: + threads: 3 host: '0.0.0.0:50051' db: host: localhost diff --git a/lib/sagittarius/configuration.rb b/lib/sagittarius/configuration.rb index c4315427..3157139f 100644 --- a/lib/sagittarius/configuration.rb +++ b/lib/sagittarius/configuration.rb @@ -20,13 +20,14 @@ def self.application_setting_overrides def self.defaults { rails: { - threads: 3, web: { + threads: 3, port: 3000, force_ssl: nil, bind: nil, }, grpc: { + threads: 3, host: '0.0.0.0:50051', }, log_level: 'info', diff --git a/lib/sagittarius/grpc/launcher.rb b/lib/sagittarius/grpc/launcher.rb index f12363d8..905fc85f 100644 --- a/lib/sagittarius/grpc/launcher.rb +++ b/lib/sagittarius/grpc/launcher.rb @@ -13,7 +13,7 @@ def create_server Sagittarius::Middleware::Grpc::Context.new, Sagittarius::Middleware::Grpc::Logger.new, Sagittarius::Middleware::Grpc::Authentication.new - ].reverse, pool_size: Configuration.config[:rails][:threads]) + ].reverse, pool_size: Configuration.config[:rails][:grpc][:threads]) logger.info('GRPC server created') @server.add_http2_port(HOST, :this_port_is_insecure) diff --git a/spec/lib/sagittarius/configuration_spec.rb b/spec/lib/sagittarius/configuration_spec.rb index 4cbdbdf5..7da594e9 100644 --- a/spec/lib/sagittarius/configuration_spec.rb +++ b/spec/lib/sagittarius/configuration_spec.rb @@ -7,7 +7,10 @@ let(:yaml_config) do <<~CONFIG rails: - threads: 4 + web: + threads: 4 + grpc: + threads: 8 CONFIG end @@ -20,7 +23,12 @@ end it 'loads the config' do - expect(described_class.config).to include(rails: a_hash_including(threads: 4)) + expect(described_class.config).to include( + rails: a_hash_including( + web: a_hash_including(threads: 4), + grpc: a_hash_including(threads: 8) + ) + ) end end