class Elasticsearch::Model::Extensions::DelayedJob::DocumentJob

Public Class Methods

new(params) click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 11
def initialize(params)
  record = params[:record]
  @active_record = params[:active_record] || record.class
  @id = params[:id] || record.id
  @run_only_if = params[:run_only_if]
end

Public Instance Methods

enqueue!() click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 22
def enqueue!
  Delayed::Job.enqueue self
end
max_attempts() click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 18
def max_attempts
  10
end

Protected Instance Methods

find_record_or_raise() click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 28
def find_record_or_raise
  @active_record.find(@id)
end
if_enabled_try_with_record(&block) click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 46
def if_enabled_try_with_record(&block)
  if @run_only_if.nil? || @run_only_if[0].send(@run_only_if[1])
    try_with_record(&block)
  end
end
record() click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 32
def record
  begin
    find_record_or_raise
  rescue ActiveRecord::RecordNotFound => e
    message = "#{self.class.name}: #{e.to_s}"
    if defined? ::Rails.logger.info
      ::Rails.logger.info message
    else
      warn message
    end
    nil
  end
end
try_with_record() { |r| ... } click to toggle source
# File lib/elasticsearch/model/extensions/delayed_job/document_job.rb, line 52
def try_with_record
  record.tap do |r|
    yield r if r
  end
end