diff --git a/Gemfile b/Gemfile index fd2bf92..113bcdb 100644 --- a/Gemfile +++ b/Gemfile @@ -7,3 +7,4 @@ gem "sqlite3" gem "activerecord", "~> 5.0.0" gem "gemoji-parser" gem "typhoeus" +gem "activejob" diff --git a/lib/searchkick/reindex_v2_job.rb b/lib/searchkick/reindex_v2_job.rb index df5be55..a12155a 100644 --- a/lib/searchkick/reindex_v2_job.rb +++ b/lib/searchkick/reindex_v2_job.rb @@ -1,10 +1,23 @@ module Searchkick class ReindexV2Job < ActiveJob::Base + RECORD_NOT_FOUND_CLASSES = [ + "ActiveRecord::RecordNotFound", + "Mongoid::Errors::DocumentNotFound", + "NoBrainer::Error::DocumentNotFound" + ] + queue_as :searchkick def perform(klass, id) model = klass.constantize - record = model.find(id) rescue nil # TODO fix lazy coding + record = + begin + model.find(id) + rescue => e + raise e unless RECORD_NOT_FOUND_CLASSES.include?(e.class.name) + nil + end + index = model.searchkick_index if !record || !record.should_index? # hacky diff --git a/test/gemfiles/mongoid6.gemfile b/test/gemfiles/mongoid6.gemfile index 23c77cb..d1c1b4b 100644 --- a/test/gemfiles/mongoid6.gemfile +++ b/test/gemfiles/mongoid6.gemfile @@ -4,3 +4,4 @@ source 'https://rubygems.org' gemspec path: "../../" gem "mongoid", "~> 6.0.0" +gem "activejob" diff --git a/test/gemfiles/nobrainer.gemfile b/test/gemfiles/nobrainer.gemfile index 4f9bb56..91b71e2 100644 --- a/test/gemfiles/nobrainer.gemfile +++ b/test/gemfiles/nobrainer.gemfile @@ -4,3 +4,4 @@ source 'https://rubygems.org' gemspec path: "../../" gem "nobrainer", ">= 0.21.0" +gem "activejob" diff --git a/test/test_helper.rb b/test/test_helper.rb index 64b94fa..e9e342e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -18,7 +18,11 @@ puts "Running against Elasticsearch #{Searchkick.server_version}" I18n.config.enforce_available_locales = true -ActiveJob::Base.logger = nil if defined?(ActiveJob) +if defined?(ActiveJob) + ActiveJob::Base.logger = nil + ActiveJob::Base.queue_adapter = :inline +end + ActiveSupport::LogSubscriber.logger = Logger.new(STDOUT) if ENV["NOTIFICATIONS"] def elasticsearch_below50? -- libgit2 0.21.0