Class: RedisClient::Cluster::ConcurrentWorker::None::Group
- Inherits:
-
Object
- Object
- RedisClient::Cluster::ConcurrentWorker::None::Group
- Defined in:
- lib/redis_client/cluster/concurrent_worker/none.rb
Defined Under Namespace
Classes: Task
Instance Method Summary collapse
- #close ⇒ Object
- #each ⇒ Object
-
#initialize(size:) ⇒ Group
constructor
A new instance of Group.
- #inspect ⇒ Object
- #push(id, *args, **kwargs, &block) ⇒ Object
Constructor Details
#initialize(size:) ⇒ Group
Returns a new instance of Group.
13 14 15 16 |
# File 'lib/redis_client/cluster/concurrent_worker/none.rb', line 13 def initialize(size:) @tasks = Array.new(size) @idx = 0 end |
Instance Method Details
#close ⇒ Object
34 35 36 37 38 |
# File 'lib/redis_client/cluster/concurrent_worker/none.rb', line 34 def close @idx = 0 @tasks.clear nil end |
#each ⇒ Object
27 28 29 30 31 32 |
# File 'lib/redis_client/cluster/concurrent_worker/none.rb', line 27 def each raise InvalidNumberOfTasks, "expected: #{@tasks.size}, actual: #{@idx}" if @idx != @tasks.size @tasks.each { |task| yield(task.id, task.result) } nil end |
#inspect ⇒ Object
40 41 42 |
# File 'lib/redis_client/cluster/concurrent_worker/none.rb', line 40 def inspect "#<#{self.class.name} size: #{@idx}, max: #{@tasks.size}>" end |
#push(id, *args, **kwargs, &block) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/redis_client/cluster/concurrent_worker/none.rb', line 18 def push(id, *args, **kwargs, &block) raise InvalidNumberOfTasks, "max size reached: #{@idx}" if @idx == @tasks.size result = exec(*args, **kwargs, &block) @tasks[@idx] = Task.new(id: id, result: result) @idx += 1 nil end |