def init_data(self): print('Data initialization...') data = self.load_data() for d in data: req = Request('PUT', d) rdm_sockets = random.sample(list(self._sockets.keys()), self._options.k) for i in rdm_sockets: cur_socket = self._sockets[i] # Send request's OPTIONS cur_socket.send(req.get_options()) cur_socket.recv(100) # Send request cur_socket.send(req.get_request()) # Receive response's OPTIONS res_options = pickle.loads(cur_socket.recv(100)) # Send confirmation confirm = Response() cur_socket.send(confirm.get_response()) # Receive response res = pickle.loads(cur_socket.recv(res_options['res_size']))
def _heart_beat(self): req = Request('HEART_BEAT') ip_address = list(self._sockets.keys()) for ip in ip_address: try: # Send request's OPTIONS self._sockets[ip].send(req.get_options()) pickle.loads(self._sockets[ip].recv(100)) # Send request self._sockets[ip].send(req.get_request()) # Receive response pickle.loads(self._sockets[ip].recv(100)) except socket.error as e: print(f'[Error] {e}') except EOFError as e: del self._sockets[ip]