module Qyu::Workers::Concerns::Split

Qyu::Workers::Concerns::Split

Adds ability to split workers to specify slice size and splittable variable name

Qyu::SplitWorker.new do

slice_size 25
payload_key 'array'

end

Public Instance Methods

payload_key(var_name) click to toggle source

Configures payload key with array to split

payload_key 25

@param payload_key [String]

# File lib/qyu/workers/concerns/split.rb, line 33
def payload_key(var_name)
  @payload_key = var_name
end
sample(smpl) click to toggle source

Run with sampling a single element out of the array

sample true

@param sample [Boolean]

# File lib/qyu/workers/concerns/split.rb, line 42
def sample(smpl)
  @sample = smpl
end
slice_size(slsz) click to toggle source

Configures slice size

slice_size 25

@param slice_size [Integer]

# File lib/qyu/workers/concerns/split.rb, line 24
def slice_size(slsz)
  @slice_size = slsz
end

Private Instance Methods

validate_split_parameters!() click to toggle source
# File lib/qyu/workers/concerns/split.rb, line 47
def validate_split_parameters!
  if @payload_key.nil?
    raise Qyu::Errors::MissingSplitParameters.new('payload_key')
  end

  if @slice_size.nil?
    raise Qyu::Errors::MissingSplitParameters.new('slice_size')
  end

  if @slice_size.zero?
    raise Qyu::Errors::InvalidWorkerConfigurationValue.new('slice_size', 0)
  end
end