From 6f725fc9cf429186f9a03e2c3686806b7a41d3de Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Tue, 14 Oct 2025 11:25:01 -0400 Subject: [PATCH 1/2] Stagger the timings on recurring jobs just to avoid dogpiling writes on the database --- config/recurring.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/recurring.yml b/config/recurring.yml index dd8b5a1e5..1d1fb87e1 100644 --- a/config/recurring.yml +++ b/config/recurring.yml @@ -10,13 +10,13 @@ production: &production # Application cleanup auto_postpone_all_due: class: Card::AutoPostponeAllDueJob - schedule: every hour + schedule: every hour at minute 50 remove_abandoned_creations: class: RemoveAbandonedCreationsJob - schedule: every hour + schedule: every hour at minute 59 delete_unused_tags: class: DeleteUnusedTagsJob - schedule: every day at 04:00 + schedule: every day at 04:02 # Operations cleanup and backups clear_solid_queue_finished_jobs: @@ -27,10 +27,10 @@ production: &production schedule: every hour at minute 52 cleanup_webhook_deliveries: class: Webhook::CleanupDeliveriesJob - schedule: every 4 hours + schedule: every 4 hours at minute 51 sqlite_backups: class: SQLiteBackupsJob - schedule: every day at 05:00 + schedule: every day at 05:02 # Metrics yabeda_actioncable: From 5934280b2e4b114527ace86cc731544d1c98e2a2 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 16 Oct 2025 09:54:18 -0400 Subject: [PATCH 2/2] Set queue.yml thread back to 3 because I can see we're backing up on Event::WebhookDispatchJob, PushNotificationJob, and Turbo::Streams jobs, all of which are doing networking. --- config/queue.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/queue.yml b/config/queue.yml index aaed725e0..130b0d9bd 100644 --- a/config/queue.yml +++ b/config/queue.yml @@ -4,7 +4,7 @@ default: &default batch_size: 500 workers: - queues: [ "default", "solid_queue_recurring", "backend", "webhooks" ] - threads: 1 + threads: 3 processes: <%= ENV.fetch("JOB_CONCURRENCY", Concurrent.physical_processor_count) %> polling_interval: 0.1