From 1ab60d83df9c49a6806f51337c92c576b0b4b0bf Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 26 Jun 2017 10:13:58 +0900 Subject: [PATCH] PERF: Terminate scheduled job earlier if badge is not enabled. --- app/jobs/scheduled/grant_anniversary_badges.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/jobs/scheduled/grant_anniversary_badges.rb b/app/jobs/scheduled/grant_anniversary_badges.rb index 5c01c53888e..04a38a90639 100644 --- a/app/jobs/scheduled/grant_anniversary_badges.rb +++ b/app/jobs/scheduled/grant_anniversary_badges.rb @@ -4,6 +4,8 @@ module Jobs def execute(args) return unless SiteSetting.enable_badges? + badge = Badge.find_by(id: Badge::Anniversary, enabled: true) + return unless badge start_date = args[:start_date] || 1.year.ago end_date = start_date + 1.year @@ -31,7 +33,6 @@ module Jobs HAVING COUNT(p.id) > 0 AND COUNT(ub.id) = 0 SQL - badge = Badge.find(Badge::Anniversary) user_ids = results.map { |r| r['user_id'].to_i } User.where(id: user_ids).find_each do |user|