Sha256: c0badfa4a51b09d102de0a682dc744271d04d56219fdd1e3c840092d8e24b304
Contents?: true
Size: 902 Bytes
Versions: 2
Compression:
Stored size: 902 Bytes
Contents
require "resque/empty_queue" module Resque extend self # Raised when trying to create a job that does not yet have an empty associated job queue class EmptyQueueError < RuntimeError; end def enqueue_with_empty_queue(klass, *args) if !empty_queue_job?(klass) || should_execute_empty_queue_job?(klass, *args) enqueue_without_empty_queue(klass, *args) else # queue not empty enqueue_without_empty_queue(EmptyQueueRetryJob, klass.name, *args) end end alias_method :enqueue_without_empty_queue, :enqueue alias_method :enqueue, :enqueue_with_empty_queue private def should_execute_empty_queue_job?(klass, *args) return true if queue_is_empty?(klass) return false end def queue_is_empty?(klass) return Resque.size(klass.queue_name) == 0 end def empty_queue_job?(klass) klass.ancestors.include?(Resque::EmptyQueueJob) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
resque_empty_queue-0.0.2 | lib/resque/resque.rb |
resque_empty_queue-0.0.1 | lib/resque/resque.rb |