Class: Pallets::Middleware::JobLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/pallets/middleware/job_logger.rb

Class Method Summary collapse

Class Method Details

.call(worker, job, context) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/pallets/middleware/job_logger.rb', line 4

def self.call(worker, job, context)
  start_time = current_time

  Pallets.logger.((worker.id, job)) do
    begin
      Pallets.logger.info 'Started'
      result = yield
      Pallets.logger.info "Done in #{(current_time - start_time).round(3)}s"
      result
    rescue => ex
      Pallets.logger.warn "Failed after #{(current_time - start_time).round(3)}s"
      Pallets.logger.warn "#{ex.class.name}: #{ex.message}"
      Pallets.logger.warn ex.backtrace.join("\n") unless ex.backtrace.nil?
      raise
    end
  end
end

.current_timeObject



32
33
34
# File 'lib/pallets/middleware/job_logger.rb', line 32

def self.current_time
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end

.extract_metadata(wid, job) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/pallets/middleware/job_logger.rb', line 22

def self.(wid, job)
  {
    wid:  wid,
    wfid: job['wfid'],
    jid:  job['jid'],
    wf:   job['workflow_class'],
    tsk:  job['task_class'],
  }
end