Files
nairobi/lib/tasks/stats.rake
Javi Martín 13dd77dd1b Add tasks to generate and expire stats cache
We're generating stats every 2 hours because it's less than the time it
will take to generate stats for every process. Once stats are generated,
this task should take less than a second.

The regenerate task has been added so we can manually execute it.
2019-05-21 13:50:19 +02:00

25 lines
606 B
Ruby

namespace :stats do
desc "Generates stats which are not cached yet"
task generate: :environment do
Budget.find_each do |budget|
Budget::Stats.new(budget).generate
print "."
end
Poll.find_each do |poll|
Poll::Stats.new(poll).generate
print "."
end
end
desc "Expires stats cache"
task expire_cache: :environment do
[Budget, Poll].each do |model_class|
model_class.find_each { |record| record.find_or_create_stats_version.touch }
end
end
desc "Deletes stats cache and generates it again"
task regenerate: [:expire_cache, :generate]
end