mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 13:29:42 +08:00
d99735e24d
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.
27 lines
739 B
Ruby
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
|