From f8a046ddabc2c7195769df57b20c5e23a13e2c99 Mon Sep 17 00:00:00 2001 From: retoor Date: Sat, 31 May 2025 13:41:45 +0200 Subject: [PATCH] Made get / set async. --- src/app/app.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/app/app.py b/src/app/app.py index d004d85..f7699fd 100644 --- a/src/app/app.py +++ b/src/app/app.py @@ -162,6 +162,13 @@ class BaseApplication(RPCApplication): class WebDbApplication(BaseApplication): + + @property + def loop(self): + return asyncio.get_event_loop() + + async def run_in_executor(self, func, *args, **kwargs): + return await self.loop.run_in_executor(None, func, *args, **kwargs) def __init__( self, db=None, db_web=False, db_path="sqlite:///:memory:", *args, **kwargs @@ -235,14 +242,14 @@ class WebDbApplication(BaseApplication): return web.json_response(response) async def set(self, key, value): - return self.sset(key, value) + return await self.run_in_executor(self.sset, key, value) def sset(self, key, value): value = json.dumps(value, default=str) return self.db["kv"].upsert({"key": key, "value": value}, ["key"]) async def get(self, key, default=None): - return self.sget(key, default) + return await self.run_in_executor(self.sget,key, default) def sget(self, key, default=None): record = self.db["kv"].find_one(key=key)