PERF: run user merging task in a background job. (#10961)

* PERF: run user merging task in a background job.

Currently, admin page is timing out while merging the users with lots of posts.
This commit is contained in:
Vinoth Kannan
2020-12-10 10:22:08 +05:30
committed by GitHub
parent f1288812e8
commit eb60fc86dc
6 changed files with 82 additions and 23 deletions
+2 -7
View File
@@ -502,14 +502,9 @@ class Admin::UsersController < Admin::AdminController
raise Discourse::NotFound if target_user.blank?
guardian.ensure_can_merge_users!(@user, target_user)
serializer_opts = { root: false, scope: guardian }
if user = UserMerger.new(@user, target_user, current_user).merge!
user_json = AdminDetailedUserSerializer.new(user, serializer_opts).as_json
render json: success_json.merge(merged: true, user: user_json)
else
render json: failed_json.merge(user: AdminDetailedUserSerializer.new(@user, serializer_opts).as_json)
end
Jobs.enqueue(:merge_user, user_id: @user.id, target_user_id: target_user.id, current_user_id: current_user.id)
render json: success_json
end
def reset_bounce_score