exception_notification for delayed_job

后端 未结 2 1909
情深已故
情深已故 2021-01-01 04:41

Is there a exception_notification-like gem for delayed_job? Preferably that works with REE-1.8.7 and Rails 2.3.10.

相关标签:
2条回答
  • 2021-01-01 05:00

    I've done something like this in the past for delayed job rake tasks:

    require 'action_mailer'
    class ExceptionMailer < ActionMailer::Base
      def setup_mail
        @from = ExceptionNotifier.sender_address
        @sent_on = Time.now
        @content_type = "text/plain"
      end
    
      def exception_message(subject, message)
        setup_mail
        @subject = subject
        @recipients = ExceptionNotifier.exception_recipients
        @body = message
      end
    end
    
    namespace :jobs do
    desc "sync the local database with the remote CMS"
    task(:sync_cms => :environment) do
      Resort.sync_all!
      result = Delayed::Job.work_off
      unless result[1].zero?
        ExceptionMailer.deliver_exception_message("[SYNC CMS] Error syncing CMS id: #{Delayed::Job.last.id}", Delayed::Job.last.last_error)
      end
    end
    

    end

    0 讨论(0)
  • 2021-01-01 05:20

    Include this module in classes which are to be delayed:

    
    require 'exception_notifier'
    module Delayed
      module ExceptionNotifier
        # Send error via exception notifier
        def error(job, e)
          env = {}
          env['exception_notifier.options'] = {
            :sections => %w(backtrace delayed_job),
            :email_prefix => '[Delayed Job ERROR] ',
            :exception_recipients => %w(some@email.com),
            :sender_address => %(other@email.com)
          }
          env['exception_notifier.exception_data'] = {:job => job}
          ::ExceptionNotifier::Notifier.exception_notification(env, e).deliver
        end
      end
    end
    

    and create a template for the notification in app/views/exception_notifier/_delayed_job.text.erb:

    
    Job name: <%= @job.name %>
    Job: <%= raw @job.inspect %>
    
    * Process: <%= raw $$ %>
    * Server : <%= raw `hostname -s`.chomp %>
    
    0 讨论(0)
提交回复
热议问题