diff --git a/app/controllers/announcement_feeds_controller.rb b/app/controllers/announcement_feeds_controller.rb index b761d67..fa2b0d9 100644 --- a/app/controllers/announcement_feeds_controller.rb +++ b/app/controllers/announcement_feeds_controller.rb @@ -2,9 +2,6 @@ require "rss" class AnnouncementFeedsController < ApplicationController include Admin::AnnouncementsHelper def feed - Thread.new do - BulletinFeedCache.all_of({:invalid_date.ne=>nil,:invalid_date.lte => Time.now}).delete_all - end uid = params[:uid] startdt = params[:start].blank? ? nil : params[:start] enddt = params[:end].blank? ? nil : params[:end] diff --git a/app/models/bulletin_feed_cache.rb b/app/models/bulletin_feed_cache.rb index 2982e2d..9147370 100644 --- a/app/models/bulletin_feed_cache.rb +++ b/app/models/bulletin_feed_cache.rb @@ -10,9 +10,14 @@ class BulletinFeedCache field :invalid_date, type: DateTime def self.regenerate_all caches = self.all.to_a - caches.each do |cache| - cache.regenerate - end + 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()