mirror of
https://github.com/discourse/discourse.git
synced 2024-12-11 16:33:41 +08:00
2d68e5d942
This commit introduces scheduled problem checks for the admin dashboard, which are long running or otherwise cumbersome problem checks that will be run every 10 minutes rather than every time the dashboard is loaded. If these scheduled checks add a problem, the problem will remain until it is cleared or until the scheduled job runs again. An example of a check that should be scheduled is validating credentials against an external provider. This commit also introduces the concept of a `priority` to the problems generated by `AdminDashboardData` and the scheduled checks. This is `low` by default, and can be set to `high`, but this commit does not change any part of the UI with this information, only adds a CSS class. I will be making a follow up PR to check group SMTP credentials.
18 lines
620 B
Ruby
18 lines
620 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
|
|
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
|