class BitBroker::Manager
This object is created for each directory
Public Class Methods
new(opts)
click to toggle source
Calls superclass method
# File lib/bitbroker/manager.rb, line 39 def initialize(opts) super(opts) end
start()
click to toggle source
# File lib/bitbroker/manager.rb, line 13 def self.start BitBroker::Config['directories'].each do |entry| fork do Process.daemon File.open(PIDFILE, 'a') do |f| f.write("#{$$}\n") end begin manager = BitBroker::Manager.new({ :mqconfig => BitBroker::Config['mqconfig'], :path => entry['path'], :name => entry['name'], }) manager.start manager.advertise loop {} rescue Exception => _ manager.stop end end end end
Public Instance Methods
advertise()
click to toggle source
# File lib/bitbroker/manager.rb, line 43 def advertise @metadata.advertise(@publisher) end
start()
click to toggle source
# File lib/bitbroker/manager.rb, line 47 def start # start observer that watches changing of local file-system @observer = do_start_observer # start receivers that consume message of remote nodes @metadata_receiver = do_start_metadata_receiver @p_metadata_receiver = do_start_p_metadata_receiver @data_receiver = do_start_data_receiver @p_data_receiver = do_start_p_data_receiver # start collector that maintains the shared directory will be same with remote ones. @collector = do_start_collector end
stop()
click to toggle source
# File lib/bitbroker/manager.rb, line 62 def stop # for observer @observer.raise 'stop' @observer.join # for receiver @metadata_receiver.raise "stop" @metadata_receiver.join @p_metadata_receiver.raise "stop" @p_metadata_receiver.join @data_receiver.raise "stop" @data_receiver.join @p_data_receiver.raise "stop" @p_data_receiver.join # for collector @collector.kill end