diff --git a/src/server.py b/src/server.py --- a/src/server.py +++ b/src/server.py @@ -1,4 +1,5 @@ -import socket +from datetime import datetime +import socket import ssl import multiprocessing import logging as log @@ -62,6 +63,7 @@ class Server(NetNode): self.BLOCK_SIZE = self._tree.BLOCK_SIZE self._data_file_obj = None + self._last_flushed = 0 @staticmethod def run(connection, *args): @@ -94,6 +96,7 @@ class Server(NetNode): if json_data["action"]=="push" and not self.is_locked(): self._lock() + self._last_flushed = datetime.now().timestamp() self._outcoming.write_msg({"command": "init", "version": conf.version}) elif json_data["command"]=="req": @@ -146,6 +149,11 @@ class Server(NetNode): if self._tree_file: self._new_leaves[k+self._tree.leaf_start] = hash_block(block) + t = datetime.now().timestamp() + if t-self._last_flushed>=60 and self._tree_file: + self._update_tree() + self._last_flushed = t + return ({"command": "ack", "index": indices},) def _finalize(self):