file structure

This commit is contained in:
2023-04-28 01:19:18 +02:00
parent 11c95e93f2
commit 71ff713417
24 changed files with 241 additions and 37 deletions

1
service/__init__.py Normal file
View File

@ -0,0 +1 @@
from .queueManager import QueueManager

35
service/queueManager.py Normal file
View File

@ -0,0 +1,35 @@
from contextlib import asynccontextmanager
from entity import Queue
from framework import Redis
class QueueManager:
def __init__(self, redis: Redis) -> None:
self.redis = redis
self.queues: dict[int, Queue] = {}
@asynccontextmanager
async def __call__(self, guildId: int) -> Queue:
#await self.acquire(guildId)
queue = await self.get(guildId)
yield queue
await self.save(guildId)
#await self.release(guildId)
async def acquire(self, guildId: int) -> None:
await self.redis.acquire(guildId)
async def release(self, guildId: int) -> None:
await self.redis.release(guildId)
async def get(self, guildId: int) -> Queue:
queue: Queue | None = await self.redis.get(guildId)
if queue is None:
queue = Queue()
self.queues[guildId] = queue
return self.queues[guildId]
async def save(self, guildId: int) -> None:
await self.redis.set(guildId, self.queues[guildId])

View File