Class: Sidekiq::PriorityQueue::Client

Inherits:
Object
  • Object
show all
Includes:
TestingClient
Defined in:
lib/sidekiq/priority_queue/client.rb

Instance Method Summary collapse

Methods included from TestingClient

#testing_verify_subqueue

Instance Method Details

#call(worker_class, item, queue, redis_pool) ⇒ Object

inserted into Sidekiq’s Client as middleware



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/sidekiq/priority_queue/client.rb', line 6

def call(worker_class, item, queue, redis_pool)
  if item['priority']
    sadd('priority-queues', queue)
    zadd(queue, item['priority'], item)
    return item['jid']
  elsif item['subqueue']
    # replace the proc with what it returns
    sadd('priority-queues', queue)
    item['subqueue'] = resolve_subqueue(item['subqueue'], item['args'])
    priority = fetch_and_add(queue, item['subqueue'], item)
    zadd(queue, priority, item)
    return item['jid']
  else
    # continue pushing the normal Sidekiq way
    yield
  end
end