Module: Resque

Defined in:
lib/resque-unique_in_queue.rb,
lib/resque/unique_in_queue/queue.rb,
lib/resque/plugins/unique_in_queue.rb,
lib/resque/unique_in_queue/version.rb,
lib/resque/unique_in_queue/configuration.rb,
lib/resque/unique_in_queue/resque_ext/job.rb,
lib/resque/unique_in_queue/resque_ext/resque.rb

Overview

See lib/resque/plugins/unique_in_queue.rb for the actual plugin

This is not that ^. Rather, it is an API used by the plugin or as tools by a

developer.  These methods are not intended to be included/extended into
Resque, Resque::Job, or Resque::Queue.

Defined Under Namespace

Modules: Plugins, UniqueInQueue Classes: Job

Class Method Summary collapse

Class Method Details

.enqueue_to(queue, klass, *args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/resque/unique_in_queue/resque_ext/resque.rb', line 5

def enqueue_to(queue, klass, *args)
  # Perform before_enqueue hooks. Don't perform enqueue if any hook returns false
  before_hooks = Plugin.before_enqueue_hooks(klass).collect do |hook|
    klass.send(hook, *args)
  end
  return nil if before_hooks.any? { |result| result == false }

  result = Job.create(queue, klass, *args)
  return nil if result == 'EXISTED'

  Plugin.after_enqueue_hooks(klass).each do |hook|
    klass.send(hook, *args)
  end

  true
end

.enqueued?(klass, *args) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/resque/unique_in_queue/resque_ext/resque.rb', line 22

def enqueued?(klass, *args)
  enqueued_in?(queue_from_class(klass), klass, *args)
end

.enqueued_in?(queue, klass, *args) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
31
# File 'lib/resque/unique_in_queue/resque_ext/resque.rb', line 26

def enqueued_in?(queue, klass, *args)
  item = { class: klass.to_s, args: args }
  return nil unless Resque::UniqueInQueue::Queue.is_unique?(item)

  Resque::UniqueInQueue::Queue.queued?(queue, item)
end

.remove_queue_with_unique_in_queue_cleanup(queue) ⇒ Object Also known as: remove_queue



33
34
35
36
# File 'lib/resque/unique_in_queue/resque_ext/resque.rb', line 33

def remove_queue_with_unique_in_queue_cleanup(queue)
  remove_queue_without_unique_in_queue_cleanup(queue)
  Resque::UniqueInQueue::Queue.cleanup(queue)
end