Sha256: 693bb51a24dc8ce856679fcfe8ad717b81e779197f2342e98e195207beb10c96

Contents?: true

Size: 827 Bytes

Versions: 1

Compression:

Stored size: 827 Bytes

Contents

module Sidejobs
  class Processor

    def process
      original_logger = ActiveRecord::Base.logger
      ActiveRecord::Base.logger = Sidejobs.logger
      Sidejobs.queue.fetch.each do |job|
        Sidejobs.logger.info "Processing #{job.data['job_class']} ##{job.id} attempt #{job.attempts+1} at #{job.queue}"
        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
      ActiveRecord::Base.logger = original_logger
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sidejobs-4.0.0.2 lib/sidejobs/processor.rb