discourse/app/jobs/scheduled/dashboard_stats.rb
Krzysztof Kotlarek d99735e24d
FEATURE: remove duplicated messages about new advices (#14319)
Discourse is sending regularly message to admins when potential problems are persisted. Most of the time they have exactly the same content. In that case, when there are no replies, the old one should be trashed before a new one is created.
2021-09-15 08:59:25 +10:00

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