From c5a35fa38a7b8c87bc7bd6590580a0f2f7b55ea7 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Thu, 30 Nov 2017 14:22:44 -0700 Subject: [PATCH] scrub old conversation batches refs CORE-123 Change-Id: Id3181523ffbd574a1cbf4a92aad4999b2d09b3e8 Reviewed-on: https://gerrit.instructure.com/134279 Tested-by: Jenkins Reviewed-by: Rob Orton Product-Review: Cody Cutrer QA-Review: Cody Cutrer --- config/initializers/periodic_jobs.rb | 4 +++ lib/conversation_batch_scrubber.rb | 39 ++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 lib/conversation_batch_scrubber.rb diff --git a/config/initializers/periodic_jobs.rb b/config/initializers/periodic_jobs.rb index c25eeee6697..eb5b0eade41 100644 --- a/config/initializers/periodic_jobs.rb +++ b/config/initializers/periodic_jobs.rb @@ -143,6 +143,10 @@ Rails.configuration.after_initialize do with_each_shard_by_database(DelayedMessageScrubber, :scrub) end + Delayed::Periodic.cron 'ConversationBatchScrubber.scrub_all', '0 2 * * *' do + with_each_shard_by_database(ConversationBatchScrubber, :scrub) + end + Delayed::Periodic.cron 'BounceNotificationProcessor.process', '*/5 * * * *' do DatabaseServer.send_in_each_region( BounceNotificationProcessor, diff --git a/lib/conversation_batch_scrubber.rb b/lib/conversation_batch_scrubber.rb new file mode 100644 index 00000000000..cac2fe7e166 --- /dev/null +++ b/lib/conversation_batch_scrubber.rb @@ -0,0 +1,39 @@ +# +# Copyright (C) 2017 - present Instructure, Inc. +# +# This file is part of Canvas. +# +# Canvas is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, version 3 of the License. +# +# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. +# +# You should have received a copy of the GNU Affero General Public License along +# with this program. If not, see . +# + +# Public: Delete old (> 90 days) records from conversation_batches table. +class ConversationBatchScrubber < MessageScrubber + + protected + + def filter_attribute + 'updated_at' + end + + def klass + ConversationBatch.where(workflow_state: 'sent') + end + + def limit_setting + 'conversation_batch_scrubber_limit' + end + + def limit_size + 90 + end +end