Made get / set async.
Some checks are pending
Build Base Application / Build (push) Waiting to run

This commit is contained in:
retoor 2025-05-31 13:41:45 +02:00
parent fb42dba59f
commit f8a046ddab

View File

@ -163,6 +163,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)