class Lowkiq::Splitters::ByNode

Public Class Methods

new(number_of_nodes, node_number, threads_per_node) click to toggle source
# 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

Public Instance Methods

call(shard_handlers) click to toggle source
# 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