@@ -32,7 +32,12 @@ def __init__(self,
32
32
logdir : str = "." ,
33
33
run_id : str ,
34
34
logging_level : int = logging .INFO ,
35
- atexit_timeout : int = 3 # in seconds
35
+ atexit_timeout : int = 3 , # in seconds
36
+ priority_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
37
+ node_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
38
+ block_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
39
+ resource_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
40
+ exit_event : Event ,
36
41
):
37
42
""" Initializes a monitoring configuration class.
38
43
@@ -52,6 +57,7 @@ def __init__(self,
52
57
atexit_timeout : float, optional
53
58
The amount of time in seconds to terminate the hub without receiving any messages, after the last dfk workflow message is received.
54
59
60
+ TODO: documentation of new parameters
55
61
"""
56
62
os .makedirs (logdir , exist_ok = True )
57
63
self .logger = set_file_logger ("{}/monitoring_router.log" .format (logdir ),
@@ -93,19 +99,20 @@ def __init__(self,
93
99
min_port = zmq_port_range [0 ],
94
100
max_port = zmq_port_range [1 ])
95
101
96
- def start (self ,
97
- priority_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
98
- node_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
99
- block_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
100
- resource_msgs : "queue.Queue[AddressedMonitoringMessage]" ,
101
- exit_event : Event ) -> None :
102
+ self .priority_msgs = priority_msgs
103
+ self .node_msgs = node_msgs
104
+ self .block_msgs = block_msgs
105
+ self .resource_msgs = resource_msgs
106
+ self .exit_event = exit_event
107
+
108
+ def start (self ) -> None :
102
109
try :
103
- while not exit_event .is_set ():
110
+ while not self . exit_event .is_set ():
104
111
try :
105
112
data , addr = self .udp_sock .recvfrom (2048 )
106
113
resource_msg = pickle .loads (data )
107
114
self .logger .debug ("Got UDP Message from {}: {}" .format (addr , resource_msg ))
108
- resource_msgs .put ((resource_msg , addr ))
115
+ self . resource_msgs .put ((resource_msg , addr ))
109
116
except socket .timeout :
110
117
pass
111
118
@@ -125,15 +132,15 @@ def start(self,
125
132
126
133
if msg [0 ] == MessageType .NODE_INFO :
127
134
msg [1 ]['run_id' ] = self .run_id
128
- node_msgs .put (msg_0 )
135
+ self . node_msgs .put (msg_0 )
129
136
elif msg [0 ] == MessageType .RESOURCE_INFO :
130
- resource_msgs .put (msg_0 )
137
+ self . resource_msgs .put (msg_0 )
131
138
elif msg [0 ] == MessageType .BLOCK_INFO :
132
- block_msgs .put (msg_0 )
139
+ self . block_msgs .put (msg_0 )
133
140
elif msg [0 ] == MessageType .TASK_INFO :
134
- priority_msgs .put (msg_0 )
141
+ self . priority_msgs .put (msg_0 )
135
142
elif msg [0 ] == MessageType .WORKFLOW_INFO :
136
- priority_msgs .put (msg_0 )
143
+ self . priority_msgs .put (msg_0 )
137
144
else :
138
145
# There is a type: ignore here because if msg[0]
139
146
# is of the correct type, this code is unreachable,
@@ -158,7 +165,7 @@ def start(self,
158
165
data , addr = self .udp_sock .recvfrom (2048 )
159
166
msg = pickle .loads (data )
160
167
self .logger .debug ("Got UDP Message from {}: {}" .format (addr , msg ))
161
- resource_msgs .put ((msg , addr ))
168
+ self . resource_msgs .put ((msg , addr ))
162
169
last_msg_received_time = time .time ()
163
170
except socket .timeout :
164
171
pass
@@ -191,7 +198,12 @@ def router_starter(comm_q: "queue.Queue[Union[Tuple[int, int], str]]",
191
198
zmq_port_range = zmq_port_range ,
192
199
logdir = logdir ,
193
200
logging_level = logging_level ,
194
- run_id = run_id )
201
+ run_id = run_id ,
202
+ priority_msgs = priority_msgs ,
203
+ node_msgs = node_msgs ,
204
+ block_msgs = block_msgs ,
205
+ resource_msgs = resource_msgs ,
206
+ exit_event = exit_event )
195
207
except Exception as e :
196
208
logger .error ("MonitoringRouter construction failed." , exc_info = True )
197
209
comm_q .put (f"Monitoring router construction failed: { e } " )
@@ -200,7 +212,7 @@ def router_starter(comm_q: "queue.Queue[Union[Tuple[int, int], str]]",
200
212
201
213
router .logger .info ("Starting MonitoringRouter in router_starter" )
202
214
try :
203
- router .start (priority_msgs , node_msgs , block_msgs , resource_msgs , exit_event )
215
+ router .start ()
204
216
except Exception as e :
205
217
router .logger .exception ("router.start exception" )
206
218
exception_q .put (('Hub' , str (e )))
0 commit comments