Class: SpatialFeatures::QueuedSpatialProcessing::SpatialProcessingJob

Inherits:
Object
  • Object
show all
Defined in:
lib/spatial_features/has_spatial_features/queued_spatial_processing.rb

Overview

CLASSES

Instance Method Summary collapse

Constructor Details

#initialize(record, method_name, *args) ⇒ SpatialProcessingJob

Returns a new instance of SpatialProcessingJob.



151
152
153
154
155
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 151

def initialize(record, method_name, *args)
  @record = record
  @method_name = method_name
  @args = args
end

Instance Method Details

#before(job) ⇒ Object



161
162
163
164
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 161

def before(job)
  ids = running_jobs.where.not(id: job.id).pluck(:id)
  raise "Already processing delayed jobs in this spatial queue: Delayed::Job #{ids.to_sentence}." if ids.present?
end

#enqueue(job) ⇒ Object



157
158
159
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 157

def enqueue(job)
  update_cached_status(:queued)
end

#error(job, exception) ⇒ Object



176
177
178
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 176

def error(job, exception)
  update_cached_status(:failure)
end

#failure(job) ⇒ Object



180
181
182
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 180

def failure(job)
  update_cached_status(:failure)
end

#performObject



166
167
168
169
170
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 166

def perform
  update_cached_status(:processing)
  options = @args.extract_options!
  @record.send(@method_name, *@args, **options)
end

#success(job) ⇒ Object



172
173
174
# File 'lib/spatial_features/has_spatial_features/queued_spatial_processing.rb', line 172

def success(job)
  update_cached_status(:success)
end