mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 02:19:27 +08:00
47e58357b6
This PR does some preparatory refactoring of scheduled admin checks in order for us to be able to do custom retry strategies for some of them. Instead of running all checks in sequence inside a single, scheduled job, the scheduled job spawns one new job per check. In order to be concurrency-safe, we need to change the existing Redis data structure from a string (of serialized JSON) to a list of strings (of serialized JSON).
20 lines
654 B
Ruby
20 lines
654 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
# This job runs all of the scheduled problem checks for the admin dashboard
|
|
# on a regular basis. To add a problem check for this scheduled job run
|
|
# call AdminDashboardData.add_scheduled_problem_check
|
|
class ProblemChecks < ::Jobs::Scheduled
|
|
sidekiq_options retry: false
|
|
|
|
every 10.minutes
|
|
|
|
def execute(_args)
|
|
# This way if the problems have been solved in the meantime, then they will
|
|
# not be re-added by the relevant checker, and will be cleared.
|
|
AdminDashboardData.clear_found_scheduled_check_problems
|
|
AdminDashboardData.execute_scheduled_checks
|
|
end
|
|
end
|
|
end
|