Class: LogSanity::LogSubscriber::ActiveJob

Inherits:
Base
  • Object
show all
Defined in:
lib/log_sanity/log_subscribers/active_job.rb

Instance Method Summary collapse

Instance Method Details

#enqueue(event) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/log_sanity/log_subscribers/active_job.rb', line 5

def enqueue(event)
  info do
    job = event.payload[:job]
    e = {
      'at' => Time.now,
      'event' => 'job_enqueue',
      'job' => job.class.name,
      'id' => job.job_id,
      'queue' => job.queue_name
    }
    e['params'] = format_args(job.arguments) if job.arguments.any?
    if error = event.payload[:exception_object] || job.enqueue_error
      e['error'] = error
    elsif event.payload[:aborted]
      e['callback_halt'] = 'before_enqueue'
    end
    e
  end
end

#enqueue_all(event) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
# File 'lib/log_sanity/log_subscribers/active_job.rb', line 46

def enqueue_all(event)
  info do
    total = event.payload[:jobs].size
    enqueued = event.payload[:enqueued_count]
    { 'at' => Time.now,
      'event' => 'bulk_enqueue',
      'enqueued' => enqueued,
      'failed' => total - enqueued,
    }
  end
end

#enqueue_at(event) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/log_sanity/log_subscribers/active_job.rb', line 25

def enqueue_at(event)
  info do
    job = event.payload[:job]
    e = {
      'at' => Time.now,
      'event' => 'job_enqueue',
      'job' => job.class.name,
      'id' => job.job_id,
      'queue' => job.queue_name,
      'start_at' => job.scheduled_at
    }
    e['params'] = format_args(job.arguments) if job.arguments.any?
    if error = event.payload[:exception_object] || job.enqueue_error
      e['error'] = error
    elsif event.payload[:aborted]
      e['callback_halt'] = 'before_enqueue'
    end
    e
  end
end

#perform(event) ⇒ Object

def perform_start(event)

info do
  job = event.payload[:job]
  e = {
    'at' => Time.now,
    'event' => 'job_start',
    'job' => job.class.name,
    'id' => job.job_id,
    'queue' => job.queue_name,
  }
  e['params'] = format_args(job.arguments) if job.arguments.any?
  e
end

end



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/log_sanity/log_subscribers/active_job.rb', line 73

def perform(event)
  info do
    job = event.payload[:job]
    e = {
      'at' => Time.now,
      'event' => 'job_perform',
      'job' => job.class.name,
      'id' => job.job_id,
      'queue' => job.queue_name,
      'duration' => {'total' => event.duration.round}
    }
    e['params'] = format_args(job.arguments) if job.arguments.any?
    if error = event.payload[:exception_object]
      e['error'] = error
    elsif event.payload[:aborted]
      e['callback_halt'] = 'before_perform'
    end
    e
  end
end