Sha256: 9fcd296f146b140c87c0bcc2612aca8b3f9b6b177b1a120f7eb2be6e6e774fb8

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

module DRbQS

  class ExecuteNode
    def initialize(uri, log_prefix, log_level)
      @uri = uri
      @log_level = log_level
      if log_prefix
        @fname = FileName.new(log_prefix, :position => :suffix, :type => :time,
                              :add => :always, :directory => :parent,
                              :format => lambda { |t| t.strftime("%Y%m%d_%H%M_#{Process.pid}.log") })
      else
        @fname = nil
      end
      @pid = []
    end

    def get_log_file
      if @fname
        return @fname.create
      end
      return STDOUT
    end
    private :get_log_file

    def create_process
      @pid << fork do
        client = DRbQS::Client.new(@uri, :log_level => @log_level, :log_file => get_log_file)
        client.connect
        client.calculate
      end
    end
    private :create_process

    def execute(process_num, interval = 0)
      process_num.times do |i|
        create_process
        sleep(interval) if interval > 0
      end
    end

    def wait
      Process.waitall 
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
drbqs-0.0.13 lib/drbqs/execute_node.rb