Sha256: dd13c6f595f35f97cd0387a27b20b7b9b2703a54983f5a5e8904d37667570703

Contents?: true

Size: 714 Bytes

Versions: 9

Compression:

Stored size: 714 Bytes

Contents

require "active_job"

module CanvasSync
  # Inherit from this class to build a Job that will log to the canvas_sync_job_logs table
  class Job < ActiveJob::Base
    around_perform do |job, block|
      @job_log = CanvasSync::JobLog.create(
        started_at: Time.now,
        job_class: self.class.name,
        job_arguments: job.arguments
      )

      begin
        block.call
      rescue => e
        @job_log.exception = "#{e.class}: #{e.message}"
        @job_log.backtrace = e.backtrace
        raise e
      ensure
        @job_log.completed_at = Time.now
        @job_log.save!
      end
    end

    def report_checker_wait_time
      Rails.env.development? ? 1.second : 30.seconds
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
canvas_sync-0.3.0 lib/canvas_sync/job.rb
canvas_sync-0.2.4 lib/canvas_sync/job.rb
canvas_sync-0.2.3 lib/canvas_sync/job.rb
canvas_sync-0.2.2 lib/canvas_sync/job.rb
canvas_sync-0.2.1 lib/canvas_sync/job.rb
canvas_sync-0.2.0 lib/canvas_sync/job.rb
canvas_sync-0.1.8 lib/canvas_sync/job.rb
canvas_sync-0.1.7 lib/canvas_sync/job.rb
canvas_sync-0.1.5 lib/canvas_sync/job.rb