Sha256: b618a68874ded545bc442fa38a57fb900768a9c970a7a76bdc1368d83589a792
Contents?: true
Size: 986 Bytes
Versions: 11
Compression:
Stored size: 986 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 @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.status ||= JobLog::SUCCESS_STATUS @job_log.save! end end end def report_checker_wait_time Rails.env.development? ? 1.second : 30.seconds end end end
Version data entries
11 entries across 11 versions & 1 rubygems