Compare commits

..

2 Commits

Author SHA1 Message Date
邱博亞 e3b499149e Add notify remote. 2024-09-16 19:33:02 +08:00
邱博亞 534a3fe954 Fix feed. 2024-09-16 19:33:02 +08:00
3 changed files with 29 additions and 47 deletions

View File

@ -4,27 +4,4 @@ class EventNewsCache
field :filter_result
field :locale,type: String,default: 'zh_tw'
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

View File

@ -8,7 +8,7 @@ class EventNewsFeed
field :category_ids, type: Array, default: []
field :remote_urls, type: Array, default: []
before_save do
EventNewsCache.where(uid: self.uid).each do |cache|
EventNewsFeedCache.where(uid: self.uid).each do |cache|
cache.regenerate
end
end
@ -17,13 +17,13 @@ class EventNewsFeed
if !event_news.nil?
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
EventNewsCache.where(:uid => uid).each do |cache|
EventNewsFeedCache.where(:uid => uid).each do |cache|
cache.regenerate
end
end
elsif !event_news_feed.nil?
uid = event_news_feed.uid
EventNewsCache.where(:uid => uid).each do |cache|
EventNewsFeedCache.where(:uid => uid).each do |cache|
cache.regenerate
end
end

View File

@ -1,29 +1,34 @@
class EventNewsFeedCache
include Mongoid::Document
include Mongoid::Timestamps
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
caches.each do |cache|
cache.regenerate
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).first.generate_one_cache(startdt: st,enddt: et,dt: dt) rescue nil
self.destroy
end
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