Class: Sidejobs::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/sidejobs/processor.rb

Instance Method Summary collapse

Instance Method Details

#processObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sidejobs/processor.rb', line 4

def process
  original_logger = ActiveJob::Base.logger
  ActiveJob::Base.logger = Sidejobs.logger
  Sidejobs.queue.fetch.each do |job|
    Sidejobs.logger.info "Processing ##{job.id} attempt #{job.attempts} of #{job.data['job_class']}"
    job.update status: 'processing', processed_at: Time.now, attempts: job.attempts+1
    begin
      ActiveJob::Base.execute job.data
      job.update status: 'complete', completed_at: Time.now
      Sidejobs.logger.info 'Done'
    rescue => exception
      job.update status: 'failing', failed_at: Time.now, error: exception.message
      Sidejobs.logger.info "Error: #{exception.message}"
    end
  end
  ActiveJob::Base.logger = original_logger
end