Sha256: cc0d49f06d5c2f78479ce02f6ac87275633ea26a61262898f866c4395ba7dce7

Contents?: true

Size: 748 Bytes

Versions: 15

Compression:

Stored size: 748 Bytes

Contents

module Workarea
  class BulkIndexSearches
    include Sidekiq::Worker

    class << self
      def perform(ids = popular_searches.pluck(:id))
        ids.each_slice(100) do |group|
          perform_by_models(Metrics::SearchByWeek.in(id: group).to_a)
        end
      end

      def popular_searches
        Metrics::SearchByWeek
          .last_week
          .has_results
          .most_searched
          .limit(Workarea.config.max_searches_to_index)
      end

      def perform_by_models(searches)
        Search::Storefront.bulk do
          searches.map do |model|
            Search::Storefront::Search.new(model).as_bulk_document
          end
        end
      end
    end

    def perform(*)
      self.class.perform
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.44 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.43 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.42 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.41 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.40 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.39 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.38 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.37 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.36 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.35 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.34 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.33 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.32 app/workers/workarea/bulk_index_searches.rb
workarea-core-3.4.31 app/workers/workarea/bulk_index_searches.rb