Class: BitBroker::Manager
Overview
This object is created for each directory
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from ManagerImpl
#do_start_collector, #do_start_data_receiver, #do_start_metadata_receiver, #do_start_observer, #do_start_p_data_receiver, #do_start_p_metadata_receiver, #form_dirpath, #handle_add, #handle_mod, #handle_rem, #has_file?, #receive_advertise, #receive_request, #receive_request_all, #receive_suggestion, #removed?, #updated?, #validate
Constructor Details
#initialize(opts) ⇒ Manager
Returns a new instance of Manager.
39
40
41
|
# File 'lib/bitbroker/manager.rb', line 39
def initialize(opts)
super(opts)
end
|
Class Method Details
.start ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 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
|
Instance Method Details
#advertise ⇒ Object
43
44
45
|
# File 'lib/bitbroker/manager.rb', line 43
def advertise
@metadata.advertise(@publisher)
end
|
#start ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/bitbroker/manager.rb', line 47
def start
@observer = do_start_observer
@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
@collector = do_start_collector
end
|
#stop ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/bitbroker/manager.rb', line 62
def stop
@observer.raise 'stop'
@observer.join
@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
@collector.kill
end
|