Sha256: 09104d8507f54af1f69133143718bbb7d746c2f05136bc812c56f6baf76370e5

Contents?: true

Size: 1.73 KB

Versions: 1

Compression:

Stored size: 1.73 KB

Contents

module RailsLiveDashboard
  module Subscribers
    class ActiveJobSubscriber
      def initialize
        enqueue
        start
        perform
        discard
      end

      private

      def enqueue
        ActiveSupport::Notifications.subscribe 'enqueue_at.active_job' do |event|
          Recorders::Jobs::EnqueueRecorder.new(event).execute
        rescue StandardError => e
          Rails.logger.error "ActiveJobSubscriber - Error on handle enqueue job event: #{e.message}"
        end

        ActiveSupport::Notifications.subscribe 'enqueue.active_job' do |event|
          Recorders::Jobs::EnqueueRecorder.new(event).execute
        rescue StandardError => e
          Rails.logger.error "ActiveJobSubscriber - Error on handle enqueue job event: #{e.message}"
        end
      end

      def start
        ActiveSupport::Notifications.subscribe 'perform_start.active_job' do |event|
          Recorders::Jobs::StartRecorder.new(event).execute
        rescue StandardError => e
          Rails.logger.error "ActiveJobSubscriber - Error on handle perform_start job event: #{e.message}"
        end
      end

      def perform
        ActiveSupport::Notifications.subscribe 'perform.active_job' do |event|
          Recorders::Jobs::PerformRecorder.new(event).execute
        rescue StandardError => e
          Rails.logger.error "ActiveJobSubscriber - Error on handle perform job event: #{e.message}"
        end
      end

      def discard
        ActiveSupport::Notifications.subscribe 'discard.active_job' do |event|
          Recorders::Jobs::DiscardRecorder.new(event).execute
        rescue StandardError => e
          Rails.logger.error "ActiveJobSubscriber - Error on handle discard job event: #{e.message}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_live_dashboard-0.2.0 lib/rails_live_dashboard/subscribers/active_job_subscriber.rb