add cleanup code for storage classes

This commit is contained in:
2025-04-28 13:36:34 +02:00
parent 0768e7f254
commit c5c2652f3a
3 changed files with 23 additions and 1 deletions
+9 -1
View File
@@ -4,7 +4,7 @@ from server.SnakeBuilder import SnakeBuilder
from server.storage.StorageLoader import StorageLoader from server.storage.StorageLoader import StorageLoader
from flask import Flask from flask import Flask, jsonify
from flask import request from flask import request
import logging, json, os, re import logging, json, os, re
@@ -55,6 +55,10 @@ class Server:
) )
return response return response
@self.app.post("/cleanup")
def cleanup():
self._cleanup()
def run(self, host:str="0.0.0.0", port:str="8000", debug:bool=False): def run(self, host:str="0.0.0.0", port:str="8000", debug:bool=False):
logging.getLogger("werkzeug").setLevel(logging.ERROR) logging.getLogger("werkzeug").setLevel(logging.ERROR)
@@ -152,3 +156,7 @@ class Server:
print("GAME ENDED: Winner is", [ x["name"] for x in game_state["board"]['snakes']]) print("GAME ENDED: Winner is", [ x["name"] for x in game_state["board"]['snakes']])
self._delete_game_board(game_state) self._delete_game_board(game_state)
def _cleanup(self):
storage = StorageLoader.build(self.storage_type)
return jsonify(storage.cleanup())
+11
View File
@@ -109,3 +109,14 @@ class EdgeDB:
def __del__(self): def __del__(self):
self.client.close() self.client.close()
def cleanup(self):
return self.run_query_with_reconnection(
self.client.query,
"""
delete default::GameBoard { }
filter .turns < <std::int32>"200" or .is_winner_me = <std::bool>"false";
delete default::Moves { }
"""
)
+3
View File
@@ -54,3 +54,6 @@ class LocalStorage:
"calculations": game_board.snake_class.get_history(), "calculations": game_board.snake_class.get_history(),
}, },
}, callback=json.dump, indent=2, ensure_ascii=False) }, callback=json.dump, indent=2, ensure_ascii=False)
def cleanup(self):
pass