Sha256: c9ecdc38cace82d4670545eaecb59c0f90bcea3e3fb6a3318e9be8f02c732f2e

Contents?: true

Size: 1.23 KB

Versions: 80

Compression:

Stored size: 1.23 KB

Contents

require 'concurrent'
require 'sucker_punch/core_ext'
require 'sucker_punch/counter'
require 'sucker_punch/job'
require 'sucker_punch/queue'
require 'sucker_punch/version'
require 'logger'

module SuckerPunch
  RUNNING = Concurrent::AtomicBoolean.new(true)

  class << self
    def exception_handler
      @exception_handler ||= method(:default_exception_handler)
    end

    def exception_handler=(handler)
      @exception_handler = handler
    end

    def default_exception_handler(ex, klass, args)
      msg = "Sucker Punch job error for class: '#{klass}' args: #{args}\n"
      msg += "#{ex.class} #{ex}\n"
      msg += "#{ex.backtrace.nil? ? '' : ex.backtrace.join("\n")}"
      logger.error msg
    end

    def logger
      @logger ||= default_logger
    end

    def default_logger
      l = Logger.new(STDOUT)
      l.level = Logger::INFO
      l
    end

    def logger=(log)
      @logger = (log ? log : Logger.new('/dev/null'))
    end

    def shutdown_timeout
      # 10 seconds on heroku, minus a grace period
      @shutdown_timeout ||= 8
    end

    def shutdown_timeout=(timeout)
      @shutdown_timeout = timeout
    end
  end
end

at_exit do
  SuckerPunch::Queue.shutdown_all
end

require 'sucker_punch/railtie' if defined?(::Rails)

Version data entries

80 entries across 80 versions & 2 rubygems

Version Path
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.10 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.9 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.8 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.7 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.6 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.5 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.4 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.3 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.2 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.1 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.2.0 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.99 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.98 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.97 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.96 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.95 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.94 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.93 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb
harbr-0.1.91 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch.rb