2021-12-20 07:59:11 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Jobs
|
|
|
|
# This job runs all of the scheduled problem checks for the admin dashboard
|
2024-02-23 11:20:32 +08:00
|
|
|
# on a regular basis. To add a problem check, add a new class that inherits
|
|
|
|
# the `ProblemCheck` base class.
|
2021-12-20 07:59:11 +08:00
|
|
|
class ProblemChecks < ::Jobs::Scheduled
|
2023-11-03 09:05:29 +08:00
|
|
|
sidekiq_options retry: false
|
|
|
|
|
2021-12-20 07:59:11 +08:00
|
|
|
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
|
2024-02-23 11:20:32 +08:00
|
|
|
|
|
|
|
::ProblemCheck.scheduled.each do |check|
|
|
|
|
Jobs.enqueue(:problem_check, check_identifier: check.identifier.to_s)
|
|
|
|
end
|
2021-12-20 07:59:11 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|