def _cleanup(self, cleanup_instance=True, is_dangling=False): # clean up session resources. for key in self._object_manager.keys(): obj = self._object_manager.get(key) obj_type = obj.type unload_type = None if obj_type == "app": unload_type = types_pb2.UNLOAD_APP config = { types_pb2.APP_NAME: attr_value_pb2.AttrValue( s=obj.key.encode("utf-8") ) } elif obj_type == "graph": unload_type = types_pb2.UNLOAD_GRAPH config = { types_pb2.GRAPH_NAME: attr_value_pb2.AttrValue( s=obj.key.encode("utf-8") ) } # dynamic graph doesn't have a vineyard id if obj.vineyard_id != -1: config[types_pb2.VINEYARD_ID] = attr_value_pb2.AttrValue( i=obj.vineyard_id ) if unload_type: dag_def = create_single_op_dag(unload_type, config) request = message_pb2.RunStepRequest( session_id=self._session_id, dag_def=dag_def ) self._analytical_engine_stub.RunStep(request) self._object_manager.clear() self._request = None # cancel dangling detect timer if self._dangling_detecting_timer: self._dangling_detecting_timer.cancel() # close engines if cleanup_instance: self._analytical_engine_stub = None self._analytical_engine_endpoint = None self._launcher.stop(is_dangling=is_dangling) self._session_id = None
def _cleanup(self, is_dangling=False): # clean up session resources. for key in self._object_manager.keys(): obj = self._object_manager.get(key) obj_type = obj.type unload_type = None if obj_type == "app": unload_type = types_pb2.UNLOAD_APP config = { types_pb2.APP_NAME: attr_value_pb2.AttrValue(s=obj.key.encode("utf-8")) } elif obj_type == "graph": unload_type = types_pb2.UNLOAD_GRAPH config = { types_pb2.GRAPH_NAME: attr_value_pb2.AttrValue(s=obj.key.encode("utf-8")) } if unload_type: dag_def = create_single_op_dag(unload_type, config) request = message_pb2.RunStepRequest( session_id=self._session_id, dag_def=dag_def) self._analytical_engine_stub.RunStep(request) self._object_manager.clear() self._analytical_engine_stub = None # cancel dangling detect timer self._dangling_detecting_timer.cancel() # close engines self._launcher.stop(is_dangling=is_dangling) self._session_id = None self._analytical_engine_endpoint = None