Commit d77120befa7f3861e2861c92965cdb6bb9008793

Authored by Braulio Bhavamitra
Committed by Rodrigo Souto
1 parent 2076b9e3

Show object in exceptions notification of feed-updater and delayed_job

lib/feed_updater.rb
... ... @@ -20,14 +20,20 @@ end
20 20 class FeedUpdater
21 21  
22 22 class ExceptionNotification < ActionMailer::Base
23   - def mail error
  23 + def mail container, error
24 24 environment = Environment.default
25 25  
26 26 recipients NOOSFERO_CONF['exception_recipients']
27 27 from environment.contact_email
28 28 reply_to environment.contact_email
29 29 subject "[#{environment.name}] Feed-updater: #{error.message}"
30   - body render(:text => error.backtrace.join("\n"))
  30 + body render(:text => "
  31 +Container:
  32 +#{container.inspect}
  33 +
  34 +Backtrace:
  35 +#{error.backtrace.join("\n")}
  36 + ")
31 37 end
32 38 end
33 39  
... ... @@ -88,11 +94,13 @@ class FeedUpdater
88 94 if !running
89 95 break
90 96 end
91   - feed_handler.process(container)
  97 + begin
  98 + feed_handler.process(container)
  99 + rescue Exception => e
  100 + FeedUpdater::ExceptionNotification.deliver_mail container, e if NOOSFERO_CONF['exception_recipients'].present?
  101 + end
92 102 end
93 103 end
94   - rescue Exception => e
95   - FeedUpdater::ExceptionNotification.deliver_mail e if NOOSFERO_CONF['exception_recipients'].present?
96 104 end
97 105 end
98 106  
... ...
vendor/plugins/monkey_patches/rescue_delayed_job_crashes/init.rb
1 1 Delayed::Worker.module_eval do
2 2 # based on https://groups.google.com/forum/#!topic/delayed_job/ZGMUFFppNgs
3 3 class Delayed::Worker::ExceptionNotification < ActionMailer::Base
4   - def mail error
  4 + def mail job, error
5 5 environment = Environment.default
6 6  
7 7 recipients NOOSFERO_CONF['exception_recipients']
8 8 from environment.contact_email
9 9 reply_to environment.contact_email
10   - subject "[#{environment.name}] DelayedJob: #{error.message}"
11   - body render(:text => error.backtrace.join("\n"))
  10 + subject "[#{environment.name}] DelayedJob ##{job.id}: #{error.message}"
  11 + body render(:text => "
  12 +Job:
  13 +#{job.inspect}
  14 +
  15 +Handler:
  16 +#{job.handler}
  17 +
  18 +Backtrace:
  19 +#{error.backtrace.join("\n")}
  20 + ")
12 21 end
13 22 end
14 23  
15 24 def handle_failed_job_with_notification(job, error)
16   - Delayed::Worker::ExceptionNotification.deliver_mail error if NOOSFERO_CONF['exception_recipients'].present?
  25 + Delayed::Worker::ExceptionNotification.deliver_mail job, error if NOOSFERO_CONF['exception_recipients'].present?
17 26 handle_failed_job_without_notification job, error
18 27 end
19 28 alias_method_chain :handle_failed_job, :notification
... ...