From 32d826c047362dde2d28b08e1f08a57303e13aba Mon Sep 17 00:00:00 2001 From: Josh Pigford Date: Tue, 4 Feb 2025 12:06:05 -0600 Subject: [PATCH 1/6] Increase good_job threads --- config/database.yml | 2 +- config/initializers/good_job.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/database.yml b/config/database.yml index 6e0652c4..0443207d 100644 --- a/config/database.yml +++ b/config/database.yml @@ -2,7 +2,7 @@ default: &default adapter: postgresql encoding: unicode # 3 connections for Puma, 8 for GoodJob (in async mode, the default for self-hosters) = 11 connections - pool: <%= ENV.fetch("DB_POOL_SIZE") { 11 } %> + pool: <%= ENV.fetch("DB_POOL_SIZE") { 13 } %> host: <%= ENV.fetch("DB_HOST") { "127.0.0.1" } %> port: <%= ENV.fetch("DB_PORT") { "5432" } %> user: <%= ENV.fetch("POSTGRES_USER") { nil } %> diff --git a/config/initializers/good_job.rb b/config/initializers/good_job.rb index c6e3d33e..b3e8cc03 100644 --- a/config/initializers/good_job.rb +++ b/config/initializers/good_job.rb @@ -13,11 +13,11 @@ Rails.application.configure do config.good_job.on_thread_error = ->(exception) { Rails.error.report(exception) } - # 5 queue threads + 3 for job listener, cron, executor = 8 threads allocated + # 10 queue threads + 3 for job listener, cron, executor = 13 threads allocated config.queues = { - "latency_low" => { max_threads: 1, priority: 10 }, # ~30s jobs - "latency_low,latency_medium" => { max_threads: 2, priority: 5 }, # ~1-2 min jobs - "latency_low,latency_medium,latency_high" => { max_threads: 1, priority: 1 }, # ~5+ min jobs + "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 } -- 2.53.0 From 058830591f6aac210be8a72d4e8dee29e4b03fe1 Mon Sep 17 00:00:00 2001 From: Josh Pigford Date: Tue, 4 Feb 2025 12:07:46 -0600 Subject: [PATCH 2/6] Increase database connection pool size --- config/database.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/database.yml b/config/database.yml index 0443207d..81e0248d 100644 --- a/config/database.yml +++ b/config/database.yml @@ -2,7 +2,7 @@ default: &default adapter: postgresql encoding: unicode # 3 connections for Puma, 8 for GoodJob (in async mode, the default for self-hosters) = 11 connections - pool: <%= ENV.fetch("DB_POOL_SIZE") { 13 } %> + pool: <%= ENV.fetch("DB_POOL_SIZE") { 16 } %> host: <%= ENV.fetch("DB_HOST") { "127.0.0.1" } %> port: <%= ENV.fetch("DB_PORT") { "5432" } %> user: <%= ENV.fetch("POSTGRES_USER") { nil } %> -- 2.53.0 From 3e06017ae1f7c061d3bef9659ac33eb782559cd9 Mon Sep 17 00:00:00 2001 From: Zach Gollwitzer Date: Tue, 4 Feb 2025 13:21:10 -0500 Subject: [PATCH 3/6] Use correct config scope for GoodJob Signed-off-by: Zach Gollwitzer --- config/initializers/good_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/good_job.rb b/config/initializers/good_job.rb index b3e8cc03..efaf18a1 100644 --- a/config/initializers/good_job.rb +++ b/config/initializers/good_job.rb @@ -14,7 +14,7 @@ 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.queues = { + 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 -- 2.53.0 From 283d9cd8e28d9f236b9f97c7134a32686ac6b058 Mon Sep 17 00:00:00 2001 From: Zach Gollwitzer Date: Tue, 4 Feb 2025 13:29:27 -0500 Subject: [PATCH 4/6] Fix GoodJob config syntax --- config/database.yml | 2 +- config/initializers/good_job.rb | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) 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 -- 2.53.0 From 15e8281d467f6564f00986030e20b9d6ed766a3c Mon Sep 17 00:00:00 2001 From: Zach Gollwitzer Date: Tue, 4 Feb 2025 13:39:52 -0500 Subject: [PATCH 5/6] Remove thread allocation from catch-all queue --- config/database.yml | 4 ++-- config/initializers/good_job.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/database.yml b/config/database.yml index d4237440..a6aa2d20 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,8 +1,8 @@ default: &default adapter: postgresql encoding: unicode - # 3 connections for Puma, 13 for GoodJob (in async mode, the default for self-hosters) = 16 connections - pool: <%= ENV.fetch("DB_POOL_SIZE") { 16 } %> + # 3 connections for Puma, 15 for GoodJob (in async mode, the default for self-hosters) = 18 connections + pool: <%= ENV.fetch("DB_POOL_SIZE") { 18 } %> host: <%= ENV.fetch("DB_HOST") { "127.0.0.1" } %> port: <%= ENV.fetch("DB_PORT") { "5432" } %> user: <%= ENV.fetch("POSTGRES_USER") { nil } %> diff --git a/config/initializers/good_job.rb b/config/initializers/good_job.rb index 0b03e80f..fcfacc19 100644 --- a/config/initializers/good_job.rb +++ b/config/initializers/good_job.rb @@ -13,11 +13,11 @@ 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 + # 7 dedicated queue threads + 5 catch-all threads + 3 for job listener, cron, executor = 15 threads allocated # `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" + config.good_job.queues = "latency_low:2;latency_low,latency_medium:3;latency_low,latency_medium,latency_high:2;*" # Auth for jobs admin dashboard ActiveSupport.on_load(:good_job_application_controller) do -- 2.53.0 From 708dc93c883617d1f9dccd826f52fd65d61586be Mon Sep 17 00:00:00 2001 From: Saleh Almatrafi Date: Tue, 4 Feb 2025 21:41:56 +0300 Subject: [PATCH 6/6] Fix incorrect currency assignment for stock prices #1623 --- app/models/provider/synth.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/provider/synth.rb b/app/models/provider/synth.rb index b7735575..bcb9f345 100644 --- a/app/models/provider/synth.rb +++ b/app/models/provider/synth.rb @@ -59,7 +59,7 @@ class Provider::Synth { date: price.dig("date"), price: price.dig("close")&.to_f || price.dig("open")&.to_f, - currency: price.dig("currency") || "USD" + currency: body.dig("currency") || "USD" } end end -- 2.53.0