examples/split_n_sync/workers/split_array_worker_with_block.rb
# frozen_string_literal: true
require_relative '../../config'
class SplitArrayWorkerWithBlock
def run
Qyu::SplitWorker.new do
callback :execute, :before do
Qyu.logger.info 'Waiting for task..'
end
callback :execute, :after do
Qyu.logger.info 'Split'
end
# Payload validation
validates :array, presence: true, type: :array
# Slice size
slice_size 3
# Variable name with array to create new payload with
payload_key 'array'
# Consumes messages from split-array queue
work('split-array') do |task|
# For example
# Can get something from database
# or preprocess data etc..
@splittable = []
@splittable.push(10)
@splittable.push(9)
@splittable.push(8)
@splittable.push(7)
@splittable.push(6)
@splittable.push(5)
@splittable.push(4)
@splittable.push(3)
@splittable.push(2)
@splittable.push(1)
@splittable.delete_if { |x| x < 3 }
@splittable
end
end
end
end