Class: Workarea::KeepProductIndexFresh

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/workarea/keep_product_index_fresh.rb

Instance Method Summary collapse

Instance Method Details

#never_indexedObject



18
19
20
21
22
23
# File 'app/workers/workarea/keep_product_index_fresh.rb', line 18

def never_indexed
  Catalog::Product
    .where(last_indexed_at: nil)
    .limit(Workarea.config.stale_products_size)
    .to_a
end

#perform(*args) ⇒ Object



10
11
12
13
14
15
16
# File 'app/workers/workarea/keep_product_index_fresh.rb', line 10

def perform(*args)
  all = never_indexed + stale

  all.take(Workarea.config.stale_products_size).each do |product|
    IndexProduct.perform(product)
  end
end

#staleObject



25
26
27
28
29
30
# File 'app/workers/workarea/keep_product_index_fresh.rb', line 25

def stale
  Catalog::Product
    .asc(:last_indexed_at)
    .limit(Workarea.config.stale_products_size)
    .to_a
end