Sha256: d3dd622b50629b08b7017648f450a2805ad2f36750baa84a8a2e5678792440d3

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

#!/usr/bin/env ruby

# $: << '/Users/dariogf/progs/ruby/gems/scbi_mapreduce/lib'
$: << File.expand_path(File.join(__FILE__,'..','..'))
# puts $:

require 'scbi_mapreduce'

class String
  def camelize
    self.split(/[^a-z0-9]/i).map{|w| w.capitalize}.join
  end

  def decamelize
    self.to_s.
      gsub(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2').
      gsub(/([a-z]+)([A-Z\d])/, '\1_\2').
      gsub(/([A-Z]{2,})(\d+)/i, '\1_\2').
      gsub(/(\d+)([a-z])/i, '\1_\2').
      gsub(/(.+?)\&(.+?)/, '\1_&_\2').
      gsub(/\s/, '_').downcase
  end
end

#================= MAIN

if ARGV.size != 4
  puts "Usage #{$0} worker_id server_ip server_port custom_worker_class"
  puts "Eg.: #{$0} 1 localhost 50000 MyWorker"
  exit
end

worker_id = ARGV[0]
ip = ARGV[1]
port = ARGV[2].to_i
custom_worker_file = ARGV[3]

using_slurm=false

if worker_id.upcase == 'AUTO'
  worker_id = ENV['SLURM_PROCID']
  using_slurm=true
end

if worker_id.to_i == 0 && using_slurm
  puts "Launching worker with: worker_id:#{worker_id}, ip:#{ip}, port:#{port}, worker_file:#{custom_worker_file}"
  puts "Ignoring first worker in manager node worker_id:#{worker_id}"
else

  puts "Launching worker with: worker_id:#{worker_id}, ip:#{ip}, port:#{port}, worker_file:#{custom_worker_file}"

  #$: << File.expand_path(File.dirname(custom_worker_file))

  require custom_worker_file

  klass_name = File.basename(custom_worker_file,File.extname(custom_worker_file)).camelize

  worker_class = Object.const_get(klass_name)

  worker_class.start_worker(worker_id,ip,port)

end

puts "FINISH WORKER"



# ============

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
scbi_mapreduce-0.0.45 lib/scbi_mapreduce/main_worker.rb