diff --git a/config/database.yml b/config/database.yml index 81e0248d..d4237440 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,7 +1,7 @@ default: &default adapter: postgresql encoding: unicode - # 3 connections for Puma, 8 for GoodJob (in async mode, the default for self-hosters) = 11 connections + # 3 connections for Puma, 13 for GoodJob (in async mode, the default for self-hosters) = 16 connections pool: <%= ENV.fetch("DB_POOL_SIZE") { 16 } %> host: <%= ENV.fetch("DB_HOST") { "127.0.0.1" } %> port: <%= ENV.fetch("DB_PORT") { "5432" } %> diff --git a/config/initializers/good_job.rb b/config/initializers/good_job.rb index efaf18a1..0b03e80f 100644 --- a/config/initializers/good_job.rb +++ b/config/initializers/good_job.rb @@ -14,12 +14,10 @@ Rails.application.configure do config.good_job.on_thread_error = ->(exception) { Rails.error.report(exception) } # 10 queue threads + 3 for job listener, cron, executor = 13 threads allocated - config.good_job.queues = { - "latency_low" => { max_threads: 3, priority: 10 }, # ~30s jobs - "latency_low,latency_medium" => { max_threads: 4, priority: 5 }, # ~1-2 min jobs - "latency_low,latency_medium,latency_high" => { max_threads: 2, priority: 1 }, # ~5+ min jobs - "*" => { max_threads: 1, priority: 0 } # fallback queue - } + # `latency_low` queue for jobs ~30s + # `latency_medium` queue for jobs ~1-2 min + # `latency_high` queue for jobs ~5+ min + config.good_job.queues = "latency_low:3;latency_low,latency_medium:4;latency_low,latency_medium,latency_high:2;*:1" # Auth for jobs admin dashboard ActiveSupport.on_load(:good_job_application_controller) do