Class: LogStruct::Integrations::ActiveJob::LogSubscriber

Inherits:
ActiveJob::LogSubscriber
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/log_struct/integrations/active_job/log_subscriber.rb

Overview

Structured logging for ActiveJob

Instance Method Summary collapse

Instance Method Details

#enqueue(event) ⇒ void

This method returns an undefined value.

Parameters:

  • event (T.untyped)


17
18
19
20
# File 'lib/log_struct/integrations/active_job/log_subscriber.rb', line 17

def enqueue(event)
  job = event.payload[:job]
  log_job_event(Event::Enqueue, job, event)
end

#enqueue_at(event) ⇒ void

This method returns an undefined value.

Parameters:

  • event (T.untyped)


23
24
25
26
# File 'lib/log_struct/integrations/active_job/log_subscriber.rb', line 23

def enqueue_at(event)
  job = event.payload[:job]
  log_job_event(Event::Schedule, job, event, scheduled_at: job.scheduled_at)
end

#perform(event) ⇒ void

This method returns an undefined value.

Parameters:

  • event (T.untyped)


29
30
31
32
33
34
35
36
37
38
39
# File 'lib/log_struct/integrations/active_job/log_subscriber.rb', line 29

def perform(event)
  job = event.payload[:job]
  exception = event.payload[:exception_object]

  if exception
    # Log the exception with the job context
    log_exception(exception, job, event)
  else
    log_job_event(Event::Finish, job, event, duration: event.duration.round(2))
  end
end

#perform_start(event) ⇒ void

This method returns an undefined value.

Parameters:

  • event (T.untyped)


42
43
44
45
# File 'lib/log_struct/integrations/active_job/log_subscriber.rb', line 42

def perform_start(event)
  job = event.payload[:job]
  log_job_event(Event::Start, job, event)
end