Sha256: aefd1c63b712e62d16e329b0d001761a22262294b77929ba9083a4aac8788c78

Contents?: true

Size: 620 Bytes

Versions: 34

Compression:

Stored size: 620 Bytes

Contents

module Workarea
  class IndexProduct
    include Sidekiq::Worker
    include Sidekiq::CallbacksWorker

    sidekiq_options(
      enqueue_on: { Catalog::Product => [:save, :destroy] },
      lock: :until_executing
    )

    class << self
      def perform(product)
        Search::ProductEntries.new(product).each(&:save)
        product.set(last_indexed_at: Time.current)
      end
    end

    def perform(id)
      self.class.perform(Catalog::Product.find(id))
    rescue Mongoid::Errors::DocumentNotFound
      Search::Storefront::Product.new(
        Catalog::Product.new(id: id)
      ).destroy
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/workers/workarea/index_product.rb
workarea-core-3.4.44 app/workers/workarea/index_product.rb
workarea-core-3.4.43 app/workers/workarea/index_product.rb
workarea-core-3.4.42 app/workers/workarea/index_product.rb
workarea-core-3.4.41 app/workers/workarea/index_product.rb
workarea-core-3.4.40 app/workers/workarea/index_product.rb
workarea-core-3.4.39 app/workers/workarea/index_product.rb
workarea-core-3.4.38 app/workers/workarea/index_product.rb
workarea-core-3.4.37 app/workers/workarea/index_product.rb
workarea-core-3.4.36 app/workers/workarea/index_product.rb
workarea-core-3.4.35 app/workers/workarea/index_product.rb
workarea-core-3.4.34 app/workers/workarea/index_product.rb
workarea-core-3.4.33 app/workers/workarea/index_product.rb
workarea-core-3.4.32 app/workers/workarea/index_product.rb
workarea-core-3.4.31 app/workers/workarea/index_product.rb
workarea-core-3.4.30 app/workers/workarea/index_product.rb
workarea-core-3.4.29 app/workers/workarea/index_product.rb
workarea-core-3.4.28 app/workers/workarea/index_product.rb
workarea-core-3.4.27 app/workers/workarea/index_product.rb
workarea-core-3.4.26 app/workers/workarea/index_product.rb