35 lines
		
	
	
		
			712 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			712 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class Vacuum::FeedsVacuum
 | 
						|
  def perform
 | 
						|
    vacuum_inactive_home_feeds!
 | 
						|
    vacuum_inactive_list_feeds!
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def vacuum_inactive_home_feeds!
 | 
						|
    inactive_users.select(:id, :account_id).in_batches do |users|
 | 
						|
      feed_manager.clean_feeds!(:home, users.pluck(:account_id))
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def vacuum_inactive_list_feeds!
 | 
						|
    inactive_users_lists.select(:id).in_batches do |lists|
 | 
						|
      feed_manager.clean_feeds!(:list, lists.ids)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def inactive_users
 | 
						|
    User.confirmed.not_signed_in_recently
 | 
						|
  end
 | 
						|
 | 
						|
  def inactive_users_lists
 | 
						|
    List.where(account_id: inactive_users.select(:account_id))
 | 
						|
  end
 | 
						|
 | 
						|
  def feed_manager
 | 
						|
    FeedManager.instance
 | 
						|
  end
 | 
						|
end
 |