Method: PUNK::Worker#perform

Defined in:
lib/punk/framework/worker.rb

#perform(kwargs = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/punk/framework/worker.rb', line 15

def perform(kwargs={})
  @_started = Time.now.utc
  logger.info "Started #{self.class.name}", kwargs.sanitize.inspect
  logger.push_tags(self.class.name)
  _init_runnable(kwargs.deep_symbolize_keys)
  raise BadRequest, "validation failed" unless valid?
  process
  nil
rescue BadRequest => e
  logger.error e.message
  logger.error errors.full_messages.to_sentence
  raise
ensure
  duration = 1000.0 * (Time.now.utc - @_started)
  logger.pop_tags
  logger.info message: "Completed #{self.class.name}", duration: duration
  SemanticLogger.flush
end