Sha256: 1a5eb0e322672f61275cb2402067c8d476d4a1c87b2a493044948cd17323cc82
Contents?: true
Size: 739 Bytes
Versions: 62
Compression:
Stored size: 739 Bytes
Contents
module Workarea class ProcessProductRecommendations include Sidekiq::Worker def perform(*) predictor.clean! start = Workarea.config.recommendation_expiration.ago Order .where(:placed_at.gte => start) .desc(:placed_at) # sort by placed_at to ensure use of that index .each_by(page_size) { |order| add(order) } predictor.process! end def predictor @predictor ||= Recommendation::ProductPredictor.new end def add(order) product_ids = order.items.map(&:product_id) predictor.orders.add_set(order.id.to_s, product_ids) if product_ids.many? end def page_size Workarea.config.product_recommendation_index_page_size end end end
Version data entries
62 entries across 62 versions & 1 rubygems