Sha256: 3857006513c8db2e4a301da84c9dfd1f13ebd95fe218324de117d47022ffa3f3

Contents?: true

Size: 864 Bytes

Versions: 34

Compression:

Stored size: 864 Bytes

Contents

module Workarea
  class ProcessSearchRecommendations
    include Sidekiq::Worker

    def perform(*)
      predictor.clean!

      start = Workarea.config.recommendation_expiration.ago

      Recommendation::UserActivity
        .where(:updated_at.gte => start)
        .desc(:updated_at) # sort by updated_at to ensure use of that index
        .each_by(page_size) { |activity| add(activity) }

      predictor.process!
    end

    def predictor
      @predictor ||= Recommendation::SearchPredictor.new
    end

    def add(activity)
      searches = activity
                  .searches
                  .map { |s| QueryString.new(s).id }
                  .reject(&:blank?)

      predictor.sessions.add_set(activity.id.to_s, searches) if searches.many?
    end

    def page_size
      Workarea.config.search_recommendation_index_page_size
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.25 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.24 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.23 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.22 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.21 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.20 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.19 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.18 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.17 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.16 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.15 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.14 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.13 app/workers/workarea/process_search_recommendations.rb
workarea-core-3.4.12 app/workers/workarea/process_search_recommendations.rb