2013-08-02 18:31:25 -04:00
|
|
|
module Jobs
|
2013-08-07 13:25:05 -04:00
|
|
|
class DashboardStats < Jobs::Scheduled
|
2015-07-07 00:52:19 -04:00
|
|
|
include Jobs::Stats
|
|
|
|
|
2014-02-05 18:14:41 -05:00
|
|
|
every 30.minutes
|
2013-08-02 18:31:25 -04:00
|
|
|
|
|
|
|
def execute(args)
|
2016-04-08 16:44:04 -04:00
|
|
|
problems_started_at = AdminDashboardData.problems_started_at
|
|
|
|
if problems_started_at && problems_started_at < 2.days.ago
|
|
|
|
# If there have been problems reported on the dashboard for a while,
|
|
|
|
# send a message to admins no more often than once per week.
|
|
|
|
GroupMessage.create(Group[:admins].name, :dashboard_problems, {limit_once_per: 7.days.to_i})
|
|
|
|
end
|
|
|
|
|
2015-09-14 15:35:05 -04:00
|
|
|
stats = AdminDashboardData.fetch_stats
|
2015-07-07 00:52:19 -04:00
|
|
|
set_cache(AdminDashboardData, stats)
|
2015-06-24 20:42:08 -04:00
|
|
|
stats
|
2013-08-02 18:31:25 -04:00
|
|
|
end
|
|
|
|
end
|
2013-09-02 03:14:41 -04:00
|
|
|
end
|