class ErpTechSvcs::DelayedJobs::NotificationJob
Public Class Methods
new()
click to toggle source
# File lib/erp_tech_svcs/delayed_jobs/notification_job.rb, line 8 def initialize @priority = 1 end
schedule_job(schedule_at)
click to toggle source
# File lib/erp_tech_svcs/delayed_jobs/notification_job.rb, line 44 def self.schedule_job(schedule_at) Delayed::Job.enqueue(ErpTechSvcs::DelayedJobs::NotificationJob.new, @priority, schedule_at) end
Public Instance Methods
perform()
click to toggle source
# File lib/erp_tech_svcs/delayed_jobs/notification_job.rb, line 12 def perform unless Dir.exists?(File.join(Rails.root, 'log/delayed_jobs')) Dir.mkdir(File.join(Rails.root, 'log/delayed_jobs')) end logger = Logger.new(File.join(Rails.root,"log/delayed_jobs/#{Rails.env}-notifications_job.log"), "weekly") logger.level = Logger::INFO time = Benchmark.measure do begin Notification.where('current_state = ?', 'pending').each do |notification| notification.deliver_notification end rescue Exception => ex logger.error("#{Time.now}**************************************************") logger.error("Job Error: #{ex.message}") logger.error("Trace: #{ex.backtrace.join("\n")}") logger.error("*************************************************************") # email notification ExceptionNotifier.notify_exception(ex) if defined? ExceptionNotifier end end start_time = Chronic.parse(ErpTechSvcs::Config.notification_job_delay) Delayed::Job.enqueue(ErpTechSvcs::DelayedJobs::NotificationJob.new, @priority, start_time) #update job tracker JobTracker.job_ran('Notification Job', self.class.name, ("(%.4fs)" % time.real), start_time) end