Sha256: 95252d47ae0cafb3ce0fe37772b69e6d680cc113511089bb095af68340159761

Contents?: true

Size: 1.26 KB

Versions: 86

Compression:

Stored size: 1.26 KB

Contents

module SuckerPunch
  module Counter
    module Utilities
      def value
        @counter.value
      end

      def increment
        @counter.increment
      end

      def decrement
        @counter.decrement
      end
    end

    class Busy
      attr_reader :counter

      include Utilities

      COUNTER = Concurrent::Map.new do |hash, name|
        hash.compute_if_absent(name) { Concurrent::AtomicFixnum.new }
      end

      def self.clear
        COUNTER.clear
      end

      def initialize(queue_name)
        @counter = COUNTER[queue_name]
      end
    end

    class Processed
      attr_reader :counter

      include Utilities

      COUNTER = Concurrent::Map.new do |hash, name|
        hash.compute_if_absent(name) { Concurrent::AtomicFixnum.new }
      end

      def self.clear
        COUNTER.clear
      end

      def initialize(queue_name)
        @counter = COUNTER[queue_name]
      end
    end

    class Failed
      attr_reader :counter

      include Utilities

      COUNTER = Concurrent::Map.new do |hash, name|
        hash.compute_if_absent(name) { Concurrent::AtomicFixnum.new }
      end

      def self.clear
        COUNTER.clear
      end

      def initialize(queue_name)
        @counter = COUNTER[queue_name]
      end
    end
  end
end

Version data entries

86 entries across 86 versions & 2 rubygems

Version Path
harbr-0.1.90 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.89 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.88 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.87 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.86 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.85 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.84 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.83 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.82 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.81 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.80 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.79 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.78 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.77 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.76 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.75 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.74 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.73 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.72 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb
harbr-0.1.71 vendor/bundle/ruby/3.2.0/gems/sucker_punch-3.1.0/lib/sucker_punch/counter.rb