Sha256: c9109fe3ae4fb44ff09d7a20a912240abc8d02d4559c172998cdab764ac34867

Contents?: true

Size: 976 Bytes

Versions: 4

Compression:

Stored size: 976 Bytes

Contents

module Resque
  module Plugins
    module RateLimitedQueue
      class UnPause
        @queue = nil

        class << self
          attr_writer(:queue)

          def use?
            Resque.respond_to?(:enqueue_at_with_queue) && @queue
          end

          def enqueue(timestamp, klass)
            # If Resque scheduler is installed and queue is set - use it to queue a wake up job
            return unless use?
            Resque.enqueue_at_with_queue(
              @queue,
              timestamp,
              Resque::Plugins::RateLimitedQueue::UnPause,
              klass)
          end

          def perform(klass)
            class_from_string(klass.to_s).un_pause
          end

          def class_from_string(str)
            return Object.const_get(str) unless str.include?('::')
            str.split('::').reduce(Object) do |mod, class_name|
              mod.const_get(class_name)
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
resque-rate_limited_queue-1.0.4 lib/resque/plugins/rate_limited_queue/rate_limited_un_pause.rb
resque-rate_limited_queue-1.0.3 lib/resque/plugins/rate_limited_queue/rate_limited_un_pause.rb
resque-rate_limited_queue-1.0.2 lib/resque/plugins/rate_limited_queue/rate_limited_un_pause.rb
resque-rate_limited_queue-1.0.0 lib/resque/plugins/rate_limited_queue/rate_limited_un_pause.rb