discourse/app/jobs/scheduled/dashboard_stats.rb

27 lines
739 B
Ruby

# frozen_string_literal: true
module Jobs
class DashboardStats < ::Jobs::Scheduled
every 30.minutes
def execute(args)
if persistent_problems?
# If there have been problems reported on the dashboard for a while,
# send a message to admins no more often than once per week.
group_message = GroupMessage.new(Group[:admins].name, :dashboard_problems, limit_once_per: 7.days.to_i)
Topic.transaction do
group_message.delete_previous!
group_message.create
end
end
end
private
def persistent_problems?
problems_started_at = AdminDashboardData.problems_started_at
problems_started_at && problems_started_at < 2.days.ago
end
end
end