From 74c8ca699c37ebdb0e3c6f0648f9f90a4f1f8f89 Mon Sep 17 00:00:00 2001 From: alpaca-tc Date: Fri, 5 May 2017 06:44:39 +0900 Subject: Delete records in smaller transaction (#2802) --- app/services/suspend_account_service.rb | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'app/services') diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index 66517470e..0cf574ca2 100644 --- a/app/services/suspend_account_service.rb +++ b/app/services/suspend_account_service.rb @@ -17,12 +17,16 @@ class SuspendAccountService < BaseService RemoveStatusService.new.call(status) end - @account.media_attachments.destroy_all - @account.stream_entries.destroy_all - @account.notifications.destroy_all - @account.favourites.destroy_all - @account.active_relationships.destroy_all - @account.passive_relationships.destroy_all + [ + @account.media_attachments, + @account.stream_entries, + @account.notifications, + @account.favourites, + @account.active_relationships, + @account.passive_relationships + ].each do |association| + destroy_all(association) + end end def purge_profile @@ -35,6 +39,10 @@ class SuspendAccountService < BaseService end def unsubscribe_push_subscribers - @account.subscriptions.destroy_all + destroy_all(@account.subscriptions) + end + + def destroy_all(association) + association.in_batches.destroy_all end end -- cgit