16 lines
519 B
Ruby
16 lines
519 B
Ruby
module Jobs
|
|
class DashboardStats < Jobs::Scheduled
|
|
recurrence { minutely(AdminDashboardData.recalculate_interval.minutes) }
|
|
|
|
def execute(args)
|
|
stats_json = AdminDashboardData.fetch_stats.as_json
|
|
|
|
# Add some extra time to the expiry so that the next job run has plenty of time to
|
|
# finish before previous cached value expires.
|
|
$redis.setex AdminDashboardData.stats_cache_key, (AdminDashboardData.recalculate_interval + 5).minutes, stats_json.to_json
|
|
|
|
stats_json
|
|
end
|
|
|
|
end
|
|
end |