Merge pull request #4836 from tgxworld/fix_clean_up_staged_users_job

FIX: Clean up unused staged users job not completing.
This commit is contained in:
Guo Xiang Tan
2017-04-27 15:41:46 +08:00
committed by GitHub
2 changed files with 52 additions and 5 deletions

View File

@@ -6,11 +6,21 @@ module Jobs
def execute(args)
destroyer = UserDestroyer.new(Discourse.system_user)
User.joins(:user_stat)
.where(staged: true)
.where("users.created_at < ?", 1.year.ago)
.where("user_stats.post_count = 0")
.find_each { |user| destroyer.destroy(user) }
User.joins("LEFT JOIN posts ON posts.user_id = users.id")
.where("posts.user_id IS NULL")
.where(staged: true)
.where("users.created_at < ?", 1.year.ago)
.find_each do |user|
begin
destroyer.destroy(user)
rescue => e
Discourse.handle_job_exception(e,
message: "Cleaning up unused staged user",
extra: { user_id: user.id }
)
end
end
end
end