Sha256: f6adaaa6f300b61cc2e1d2b983013fe376e3b009b825681134c96302747f9045

Contents?: true

Size: 929 Bytes

Versions: 14

Compression:

Stored size: 929 Bytes

Contents

# frozen_string_literal: true

require 'sidekiq'

module PUNK
  class Worker < Runnable
    include Sidekiq::Worker

    def self.perform_now(**kwargs)
      worker = new
      worker.define_singleton_method :logger, -> { SemanticLogger['PUNK::SKQ'] }
      worker.send(:perform, **kwargs)
    end

    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
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
punk-0.3.6 lib/punk/framework/worker.rb
punk-0.3.5 lib/punk/framework/worker.rb
punk-0.3.4 lib/punk/framework/worker.rb
punk-0.3.3 lib/punk/framework/worker.rb
punk-0.3.2 lib/punk/framework/worker.rb
punk-0.3.1 lib/punk/framework/worker.rb
punk-0.2.0 lib/punk/framework/worker.rb
punk-0.1.4 lib/punk/framework/worker.rb
punk-0.1.3 lib/punk/framework/worker.rb
punk-0.1.2 lib/punk/framework/worker.rb
punk-0.1.0 lib/punk/framework/worker.rb
punk-0.0.3 lib/punk/framework/worker.rb
punk-0.0.2 lib/punk/framework/worker.rb
punk-0.0.1 lib/punk/framework/worker.rb