summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Shutsin <pshutsin@gitlab.com>2019-03-04 22:03:00 +0300
committerPavel Shutsin <pshutsin@gitlab.com>2019-03-04 22:03:03 +0300
commitdf7edaef0cba7e7b05c5b9a46541a1391932182e (patch)
tree779c4fc60613c95521faf05c8c1b690243d0587e
parent5c80bbb33c12490bc5fa711642a40fc16bdb79a4 (diff)
downloadgitlab-ce-6260-remove-user-on-enabling-group-managed-accounts.tar.gz
Fix Members::BaseService to work properly with transactions6260-remove-user-on-enabling-group-managed-accounts
We shouldn't schedule Sidekiq jobs directly during service execution. Instead we should postpone it to after_commit block where possible.
-rw-r--r--app/services/members/base_service.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/app/services/members/base_service.rb b/app/services/members/base_service.rb
index e78affff797..5d69418fb7d 100644
--- a/app/services/members/base_service.rb
+++ b/app/services/members/base_service.rb
@@ -51,7 +51,9 @@ module Members
def enqueue_delete_todos(member)
type = member.is_a?(GroupMember) ? 'Group' : 'Project'
# don't enqueue immediately to prevent todos removal in case of a mistake
- TodosDestroyer::EntityLeaveWorker.perform_in(Todo::WAIT_FOR_DELETE, member.user_id, member.source_id, type)
+ member.run_after_commit_or_now do
+ TodosDestroyer::EntityLeaveWorker.perform_in(Todo::WAIT_FOR_DELETE, member.user_id, member.source_id, type)
+ end
end
end
end