Compare commits
2 Commits
308269097f
...
e3b499149e
Author | SHA1 | Date |
---|---|---|
|
e3b499149e | |
|
534a3fe954 |
|
@ -4,27 +4,4 @@ class EventNewsCache
|
||||||
field :filter_result
|
field :filter_result
|
||||||
field :locale,type: String,default: 'zh_tw'
|
field :locale,type: String,default: 'zh_tw'
|
||||||
field :invalid_date, type: DateTime
|
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 = EventNewsFeed.all.pluck(:uid) - caches.collect(&:uid)
|
|
||||||
EventNewsFeed.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
|
|
||||||
EventNewsFeed.where(uid: uid).each{|v| v.generate_one_cache(startdt: st,enddt: et,dt: dt)} rescue nil
|
|
||||||
self.destroy
|
|
||||||
end
|
|
||||||
end
|
end
|
|
@ -8,7 +8,7 @@ class EventNewsFeed
|
||||||
field :category_ids, type: Array, default: []
|
field :category_ids, type: Array, default: []
|
||||||
field :remote_urls, type: Array, default: []
|
field :remote_urls, type: Array, default: []
|
||||||
before_save do
|
before_save do
|
||||||
EventNewsCache.where(uid: self.uid).each do |cache|
|
EventNewsFeedCache.where(uid: self.uid).each do |cache|
|
||||||
cache.regenerate
|
cache.regenerate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -17,13 +17,13 @@ class EventNewsFeed
|
||||||
if !event_news.nil?
|
if !event_news.nil?
|
||||||
self.where(:tag_ids.in => Array(event_news.tag_ids).collect{|v| v.to_s}).each do |event_news_feed|
|
self.where(:tag_ids.in => Array(event_news.tag_ids).collect{|v| v.to_s}).each do |event_news_feed|
|
||||||
uid = event_news_feed.uid
|
uid = event_news_feed.uid
|
||||||
EventNewsCache.where(:uid => uid).each do |cache|
|
EventNewsFeedCache.where(:uid => uid).each do |cache|
|
||||||
cache.regenerate
|
cache.regenerate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elsif !event_news_feed.nil?
|
elsif !event_news_feed.nil?
|
||||||
uid = event_news_feed.uid
|
uid = event_news_feed.uid
|
||||||
EventNewsCache.where(:uid => uid).each do |cache|
|
EventNewsFeedCache.where(:uid => uid).each do |cache|
|
||||||
cache.regenerate
|
cache.regenerate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,29 +1,34 @@
|
||||||
class EventNewsFeedCache
|
class EventNewsFeedCache
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
field :content, type: String, default: ''
|
field :content, type: String, default: ''
|
||||||
field :uid
|
field :uid
|
||||||
field :start
|
field :start
|
||||||
field :end
|
field :end
|
||||||
field :date
|
field :date
|
||||||
field :invalid_date, type: DateTime
|
field :invalid_date, type: DateTime
|
||||||
def self.regenerate_all
|
def self.regenerate_all
|
||||||
caches = self.all.to_a
|
caches = self.all.to_a
|
||||||
caches.each do |cache|
|
time_now = Time.now
|
||||||
cache.regenerate
|
caches.each do |cache|
|
||||||
end
|
if cache.invalid_date && cache.invalid_date <= time_now
|
||||||
uids = EventNewsFeed.all.pluck(:uid) - caches.collect(&:uid)
|
cache.destroy
|
||||||
EventNewsFeed.where(:uid.in=> uids).each do |feed|
|
else
|
||||||
feed.generate_one_cache()
|
cache.regenerate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
def regenerate
|
uids = EventNewsFeed.all.pluck(:uid) - caches.collect(&:uid)
|
||||||
st = self.start
|
EventNewsFeed.where(:uid.in=> uids).each do |feed|
|
||||||
et = self.end
|
feed.generate_one_cache()
|
||||||
dt = self.date
|
end
|
||||||
uid = self.uid
|
end
|
||||||
EventNewsFeed.where(uid: uid).first.generate_one_cache(startdt: st,enddt: et,dt: dt) rescue nil
|
def regenerate
|
||||||
self.destroy
|
st = self.start
|
||||||
end
|
et = self.end
|
||||||
|
dt = self.date
|
||||||
|
uid = self.uid
|
||||||
|
EventNewsFeed.where(uid: uid).each{|v| v.generate_one_cache(startdt: st,enddt: et,dt: dt)} rescue nil
|
||||||
|
self.destroy
|
||||||
|
end
|
||||||
end
|
end
|
Loading…
Reference in New Issue