12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# 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("*************************************************************")
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)
JobTracker.job_ran('Notification Job', self.class.name, ("(%.4fs)" % time.real), start_time)
end
|