From 61b763a3b420e30f3c0d55da64f084af3fef5f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Mon, 16 Sep 2024 11:30:37 +0800 Subject: [PATCH] Fix feed. --- app/models/event_news_cache.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/models/event_news_cache.rb b/app/models/event_news_cache.rb index 8d6dce7..89af8c7 100644 --- a/app/models/event_news_cache.rb +++ b/app/models/event_news_cache.rb @@ -4,4 +4,27 @@ 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 \ No newline at end of file