diff options
author | Pavel Shutsin <pshutsin@gitlab.com> | 2019-03-04 22:03:00 +0300 |
---|---|---|
committer | Pavel Shutsin <pshutsin@gitlab.com> | 2019-03-04 22:03:03 +0300 |
commit | df7edaef0cba7e7b05c5b9a46541a1391932182e (patch) | |
tree | 779c4fc60613c95521faf05c8c1b690243d0587e | |
parent | 5c80bbb33c12490bc5fa711642a40fc16bdb79a4 (diff) | |
download | gitlab-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.rb | 4 |
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 |