From c0a92cb801528f00d1317b01fd8a94274552c166 Mon Sep 17 00:00:00 2001 From: Olaf Tomalka Date: Mon, 5 Sep 2016 22:57:56 +0200 Subject: 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 fea56a6ef21..1d42acfe363 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 - 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 a0182fc67d0..d75083f9ab1 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 2fac3e34dc5..195108b921b 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -300,7 +300,7 @@ Settings.cron_jobs['remove_expired_group_links_worker'] ||= Settingslogic.new({} 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' # -- cgit v1.2.1