class FadeOutTrendPowerWorker
Public Instance Methods
perform( multiplier = 0.9, batch_size = 1000 )
click to toggle source
# File lib/workers/fade_out_trend_power_worker.rb, line 4 def perform( multiplier = 0.9, batch_size = 1000 ) Rails.application.eager_load! if Rails.env.development? ActiveRecord::Base.descendants.each do |klass| if klass.respond_to?( "has_trendable_concern?".to_sym ) klass.items_to_fade_trending_power.select( :id ).find_in_batches( batch_size: batch_size ) do |batch| klass.where( id: batch.collect{ |i| i.id } ).update_all( "trending_power = trending_power * #{multiplier}") end else puts "#{klass.to_s} does not have trendable concern" end end end