class Upman::Core::Worker

Attributes

worker_threads[RW]
workers[RW]

Public Class Methods

new() click to toggle source
# File lib/upman/core/worker.rb, line 10
def initialize
  @stop_signal = true
  @config = ::Upman::Core::Config.daemon
  @workers = []
  @worker_threads = []

  register_worker
end

Public Instance Methods

register_worker() click to toggle source
# File lib/upman/core/worker.rb, line 36
def register_worker
  @config[:workers].each do |worker|
    require_relative "../../upman/worker/#{worker}"
    ext_obj  = dynload("Upman::Worker::#{worker.split('_').map(&:capitalize).join('')}")
    info "Register Worker Thread Upman::Worker::#{worker.split('_').map(&:capitalize).join('')}"
    ext_class = ext_obj .new
    @workers.append ext_class.register
  end
end
run!() click to toggle source
# File lib/upman/core/worker.rb, line 19
def run!
  show_banner

  @workers.each do |worker|
    @worker_threads << Thread.new do
      worker.run!
    end
  end
  @worker_threads.each { |t| t.join }
end
shutdown() click to toggle source
# File lib/upman/core/worker.rb, line 30
def shutdown
  info "Stopping Worker Threads"
  @stop_signal = false
end

Private Instance Methods

show_banner() click to toggle source
# File lib/upman/core/worker.rb, line 49
def show_banner
  info "Running UpMan #{::Upman::Version::VERSION}"
end