34 lines
833 B
Ruby
34 lines
833 B
Ruby
class BulletinFeedCache
|
|
include Mongoid::Document
|
|
include Mongoid::Timestamps
|
|
|
|
field :content, type: String, default: ''
|
|
field :uid
|
|
field :start
|
|
field :end
|
|
field :date
|
|
field :invalid_date, type: DateTime
|
|
def self.regenerate_all
|
|
caches = self.all.to_a
|
|
time_now = Time.now
|
|
caches.each do |cache|
|
|
if cache.invalid_date && cache.invalid_date <= time_now
|
|
cache.destroy
|
|
else
|
|
cache.regenerate
|
|
end
|
|
end
|
|
uids = BulletinFeed.all.pluck(:uid) - caches.collect(&:uid)
|
|
BulletinFeed.where(:uid.in=> uids).each do |feed|
|
|
feed.generate_one_cache()
|
|
end
|
|
end
|
|
def regenerate
|
|
st = self.start
|
|
et = self.end
|
|
dt = self.date
|
|
uid = self.uid
|
|
BulletinFeed.where(uid: uid).each{|v| v.generate_one_cache(startdt: st,enddt: et,dt: dt)} rescue nil
|
|
self.destroy
|
|
end
|
|
end |