Sha256: e1cd7c27128a6f316fcf124ab9e97083f32f5d1a609d8593227b81501ec081ef

Contents?: true

Size: 899 Bytes

Versions: 1

Compression:

Stored size: 899 Bytes

Contents

module CanvasSync
  module Sidekiq
    class Middleware
      def call(worker, job, queue)
        begin
          job_log = CanvasSync::JobLog.create(
            job_class: worker.class.to_s,
            job_arguments: job["args"],
            job_id: job["jid"],
            status: JobLog::RUNNING_STATUS,
            started_at: Time.now
          )

          yield
          job_log.status = JobLog::SUCCESS_STATUS
        rescue => e
          job_log.exception = "#{e.class}: #{e.message}"
          job_log.backtrace = e.backtrace
          job_log.status = JobLog::ERROR_STATUS
          raise e
        ensure
          if job_log.job_class == "CanvasSync::Jobs::ReportChecker" && job_log.status != JobLog::ERROR_STATUS
            job_log.destroy
          else
            job_log.completed_at = Time.now
            job_log.save!
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
canvas_sync-0.5.4 lib/canvas_sync/sidekiq_job.rb