def discoverWorkers(self):
"""Discover new workers via udp broadcasts"""
rlist, wlist, elist = select([self.discoverysocket], [], [], 0)
if rlist:
received = self.discoverysocket.recvfrom(4096)[0]
discoverydata = {}
try:
discoverydata = json.loads(bytes.decode(received))
except json.JSONDecodeError:
pass
if "ip" in discoverydata and "port" in discoverydata:
if "host" in discoverydata:
name = discoverydata["host"]
else:
name = discoverydata["ip"] + ":" + str(discoverydata["port"])
if name not in self.workers:
treeItem = QTreeWidgetItem(1001) # Type 1000 for Worker Item
treeItem.setText(0, name)
self.treeWidget.addTopLevelItem(treeItem)
self.grabPeriodicInfos() # Grab monitor data
self.workers[name] = Worker(discoverydata, treeItem, nodeDataJar=self.nodeDataJar)
self.workers[name].tick(self.sheetDeltaMemory)
self.workers[name].synchronize()
评论列表
文章目录