Class: Jobs::BadgeGrant
- Defined in:
- app/jobs/scheduled/badge_grant.rb
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Scheduled
Methods inherited from Base
acquire_cluster_concurrency_lock!, clear_cluster_concurrency_lock!, cluster_concurrency, cluster_concurrency_redis_key, delayed_perform, #error_context, get_cluster_concurrency, #last_db_duration, #log, #perform, #perform_immediately
Class Method Details
.run ⇒ Object
5 6 7 |
# File 'app/jobs/scheduled/badge_grant.rb', line 5 def self.run self.new.execute(nil) end |
Instance Method Details
#execute(args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/jobs/scheduled/badge_grant.rb', line 11 def execute(args) return unless SiteSetting.enable_badges Badge.enabled.find_each do |b| begin BadgeGranter.backfill(b) rescue => ex # TODO - expose errors in UI Discourse.handle_job_exception( ex, error_context({}, code_desc: "Exception granting badges", extra: { badge_id: b.id }), ) end end BadgeGranter.revoke_ungranted_titles! UserBadge.ensure_consistency! # Badge granter sometimes uses raw SQL, so hooks do not run. Clean up data UserStat.update_distinct_badge_count end |