add ping and refactor
This commit is contained in:
parent
5de3ac2210
commit
8c078e837c
|
@ -11,5 +11,4 @@ OAA_CFG__SWAGGER__PWD=P@ssw0rd!
|
|||
|
||||
OAA_CFG__REDIS__HOST=localhost
|
||||
OAA_CFG__REDIS__PORT=6379
|
||||
OAA_CFG__REDIS__DB=0
|
||||
OAA_CFG__REDIS__PWD=P@ssw0rd!
|
|
@ -32,6 +32,7 @@ class PrefixConfig(BaseModel):
|
|||
swagger: str = "/docs"
|
||||
api_v1: str = "/api/v1"
|
||||
tg_v1: str = api_v1 + "/tg"
|
||||
ping: str = "/ping"
|
||||
|
||||
|
||||
class TokenConfig(BaseModel):
|
||||
|
@ -42,7 +43,6 @@ class TokenConfig(BaseModel):
|
|||
class RedisConfig(BaseModel):
|
||||
host: str = "localhost"
|
||||
port: int = 6379
|
||||
db: int = 0
|
||||
pwd: str | None = None
|
||||
|
||||
|
||||
|
|
2
main.py
2
main.py
|
@ -11,7 +11,7 @@ from contextlib import asynccontextmanager
|
|||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
yield
|
||||
await db_helper.dispose()
|
||||
log.info("main APP stopped")
|
||||
|
||||
|
||||
main_app = FastAPI(
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from .crud import get_value, set_value
|
||||
from .crud import get_value, set_value, ping
|
||||
|
||||
__all__ = [
|
||||
"get_value",
|
||||
"set_value",
|
||||
"ping",
|
||||
]
|
||||
|
|
|
@ -1,19 +1,25 @@
|
|||
import logging as log
|
||||
import asyncio
|
||||
from r_helper import RedisManager
|
||||
from .r_helper import RedisManager
|
||||
|
||||
|
||||
async def ping():
|
||||
async with RedisManager() as redis_connect:
|
||||
if redis_connect:
|
||||
result = await redis_connect.client.ping()
|
||||
log.info("Ping - %s", result)
|
||||
return result
|
||||
|
||||
|
||||
async def set_value(key, value):
|
||||
async with RedisManager() as redis_connect:
|
||||
await redis_connect.client.set(key, value)
|
||||
log.info("Set %s = %s", key, value)
|
||||
if redis_connect:
|
||||
await redis_connect.client.set(key, value)
|
||||
log.info("Set %s = %s", key, value)
|
||||
|
||||
|
||||
async def get_value(key):
|
||||
async with RedisManager() as redis_connect:
|
||||
value = await redis_connect.client.get(key)
|
||||
log.info("Get %s = %s", key, value)
|
||||
|
||||
|
||||
asyncio.run(set_value("q", "sefesf"))
|
||||
asyncio.run(get_value("q"))
|
||||
if redis_connect:
|
||||
value = await redis_connect.client.get(key)
|
||||
log.info("Get %s = %s", key, value)
|
||||
return value
|
||||
|
|
|
@ -16,15 +16,14 @@ class RedisManager:
|
|||
|
||||
async def __aenter__(self):
|
||||
self.client = Redis(**self.connect_params)
|
||||
|
||||
try:
|
||||
await self.client.ping() # Проверяем, что соединение успешно
|
||||
await self.client.ping()
|
||||
log.info("connected to Redis")
|
||||
return self
|
||||
except ConnectionError:
|
||||
log.warning("failed to connect to Redis")
|
||||
self.client = None
|
||||
raise ConnectionError
|
||||
return None
|
||||
|
||||
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
||||
if self.client:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from .swagger import router as swagger_router
|
||||
|
||||
from .ping import router as ping_router
|
||||
from .tg_send import router as tg_send_router
|
||||
from config import conf
|
||||
|
||||
|
@ -12,6 +12,11 @@ router.include_router(
|
|||
swagger_router,
|
||||
prefix=conf.prefix.swagger,
|
||||
)
|
||||
router.include_router(
|
||||
ping_router,
|
||||
prefix=conf.prefix.ping,
|
||||
tags=["Ping"],
|
||||
)
|
||||
router.include_router(
|
||||
tg_send_router,
|
||||
prefix=conf.prefix.tg_v1,
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
from fastapi import APIRouter
|
||||
from redis_db import ping
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def ping_post():
|
||||
redis_ping = await ping()
|
||||
return {"ok": True, "redis": redis_ping}
|
||||
|
||||
|
||||
@router.post("")
|
||||
async def ping_get():
|
||||
redis_ping = await ping()
|
||||
return {"ok": True, "redis": redis_ping}
|
Loading…
Reference in New Issue