Class: RedisClient::Cluster::ConcurrentWorker::OnDemand

Inherits:
Object
  • Object
show all
Defined in:
lib/redis_client/cluster/concurrent_worker/on_demand.rb

Instance Method Summary collapse

Constructor Details

#initialize(size:) ⇒ OnDemand

Returns a new instance of OnDemand.



7
8
9
# File 'lib/redis_client/cluster/concurrent_worker/on_demand.rb', line 7

def initialize(size:)
  @q = SizedQueue.new(size)
end

Instance Method Details

#closeObject



23
24
25
26
27
# File 'lib/redis_client/cluster/concurrent_worker/on_demand.rb', line 23

def close
  @q.clear
  @q.close
  nil
end

#inspectObject



29
30
31
# File 'lib/redis_client/cluster/concurrent_worker/on_demand.rb', line 29

def inspect
  "#<#{self.class.name} active: #{@q.size}, max: #{@q.max}>"
end

#new_group(size:) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/redis_client/cluster/concurrent_worker/on_demand.rb', line 11

def new_group(size:)
  ::RedisClient::Cluster::ConcurrentWorker::Group.new(
    worker: self,
    queue: SizedQueue.new(size),
    size: size
  )
end

#push(task) ⇒ Object



19
20
21
# File 'lib/redis_client/cluster/concurrent_worker/on_demand.rb', line 19

def push(task)
  @q << spawn_worker(task, @q)
end