Class: Lowkiq::Splitters::ByNode

Inherits:
Object
  • Object
show all
Defined in:
lib/lowkiq/splitters/by_node.rb

Instance Method Summary collapse

Constructor Details

#initialize(number_of_nodes, node_number, threads_per_node) ⇒ ByNode

Returns a new instance of ByNode.



4
5
6
7
8
# File 'lib/lowkiq/splitters/by_node.rb', line 4

def initialize(number_of_nodes, node_number, threads_per_node)
  @number_of_nodes = number_of_nodes
  @node_number = node_number
  @threads_per_node = threads_per_node
end

Instance Method Details

#call(shard_handlers) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/lowkiq/splitters/by_node.rb', line 10

def call(shard_handlers)
  groups_for_nodes = Utils::Array.new(shard_handlers).in_transposed_groups(@number_of_nodes)
  groups_for_node = groups_for_nodes[@node_number]
  Utils::Array.new(groups_for_node)
    .in_transposed_groups(@threads_per_node)
    .reject(&:empty?)
end