No more pickling objects

This commit is contained in:
Lee Miller 2024-09-08 07:02:22 +03:00
parent 48cab8ac75
commit 5060c5e005
Signed by: lee.miller
GPG Key ID: 4F97A5EA88F4AB63

View File

@ -22,7 +22,7 @@ class Manager(threading.Thread):
self.q = queue.Queue() self.q = queue.Queue()
self.last_cleaned_objects = time.time() self.last_cleaned_objects = time.time()
self.last_cleaned_connections = time.time() self.last_cleaned_connections = time.time()
self.last_pickled_objects = time.time() # self.last_pickled_objects = time.time()
self.last_pickled_nodes = time.time() self.last_pickled_nodes = time.time()
# Publish destination 5-15 minutes after start # Publish destination 5-15 minutes after start
self.last_published_i2p_destination = \ self.last_published_i2p_destination = \
@ -137,18 +137,6 @@ class Manager(threading.Thread):
@staticmethod @staticmethod
def load_data(): def load_data():
"""Loads initial nodes and data, stored in files between sessions""" """Loads initial nodes and data, stored in files between sessions"""
try:
with open(
os.path.join(shared.data_directory, 'objects.pickle'), 'br'
) as src:
for obj in pickle.load(src):
shared.objects[obj.vector] = obj
except FileNotFoundError:
pass # first start
except Exception:
logging.warning(
'Error while loading objects from disk.', exc_info=True)
try: try:
with open( with open(
os.path.join(shared.data_directory, 'nodes.pickle'), 'br' os.path.join(shared.data_directory, 'nodes.pickle'), 'br'
@ -188,17 +176,17 @@ class Manager(threading.Thread):
(row[0].encode(), 'i2p') for row in reader} (row[0].encode(), 'i2p') for row in reader}
shared.i2p_node_pool.update(shared.i2p_core_nodes) shared.i2p_node_pool.update(shared.i2p_core_nodes)
@staticmethod # @staticmethod
def pickle_objects(): # def pickle_objects():
try: # try:
with open( # with open(
os.path.join(shared.data_directory, 'objects.pickle'), 'bw' # os.path.join(shared.data_directory, 'objects.pickle'), 'bw'
) as dst: # ) as dst:
with shared.objects_lock: # with shared.objects_lock:
pickle.dump(shared.objects, dst, protocol=3) # pickle.dump(shared.objects, dst, protocol=3)
logging.debug('Saved objects') # logging.debug('Saved objects')
except Exception: # except Exception:
logging.warning('Error while saving objects', exc_info=True) # logging.warning('Error while saving objects', exc_info=True)
@staticmethod @staticmethod
def pickle_nodes(): def pickle_nodes():