From c0a92cb801528f00d1317b01fd8a94274552c166 Mon Sep 17 00:00:00 2001 From: Olaf Tomalka <olaf.tomalka@gmail.com> Date: Mon, 5 Sep 2016 22:57:56 +0200 Subject: [PATCH] Limited amount of pruned Event rows per run Old deployments of Gitlab might have a big number of old events to be deleted. Such numbers cause the worker to timeout. I've limited the amount of rows that should be destroyed at once to 10000, and increased how often pruning shall take place to 4 times a day. --- CHANGELOG | 1 + app/workers/prune_old_events_worker.rb | 2 +- config/initializers/1_settings.rb | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fea56a6ef2171..1d42acfe3631e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date. v 8.12.0 (unreleased) - Add ability to fork to a specific namespace using API. (ritave) - Cleanup misalignments in Issue list view !6206 + - Prune events older than 12 months. @ritave <olaf@tomalka.me> - Prepend blank line to `Closes` message on merge request linked to issue (lukehowell) - Prune events older than 12 months. - Filter tags by name !6121 diff --git a/app/workers/prune_old_events_worker.rb b/app/workers/prune_old_events_worker.rb index a0182fc67d052..d75083f9ab198 100644 --- a/app/workers/prune_old_events_worker.rb +++ b/app/workers/prune_old_events_worker.rb @@ -3,6 +3,6 @@ class PruneOldEventsWorker def perform # Contribution calendar shows maximum 12 months of events - Event.where('created_at < ?', (12.months + 1.day).ago).destroy_all + Event.delete(Event.unscoped.where('created_at < ?', (12.months + 1.day).ago).limit(10_000).pluck(:id)) end end diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index 2fac3e34dc53f..195108b921b74 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -300,7 +300,7 @@ def host(url) Settings.cron_jobs['remove_expired_group_links_worker']['cron'] ||= '10 0 * * *' Settings.cron_jobs['remove_expired_group_links_worker']['job_class'] = 'RemoveExpiredGroupLinksWorker' Settings.cron_jobs['prune_old_events_worker'] ||= Settingslogic.new({}) -Settings.cron_jobs['prune_old_events_worker']['cron'] ||= '0 0 * * *' +Settings.cron_jobs['prune_old_events_worker']['cron'] ||= '* */6 * * *' Settings.cron_jobs['prune_old_events_worker']['job_class'] = 'PruneOldEventsWorker' # -- GitLab