2021-01-06 19:52:14 +08:00
|
|
|
import logging
|
|
|
|
|
2023-04-10 20:23:31 +08:00
|
|
|
from database.session import async_session_factory
|
2023-03-19 23:21:32 +08:00
|
|
|
from tenacity import after_log, before_log, retry, stop_after_attempt, wait_fixed
|
|
|
|
|
2021-01-06 19:52:14 +08:00
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
max_tries = 60 * 5 # 5 minutes
|
|
|
|
wait_seconds = 1
|
|
|
|
|
|
|
|
|
|
|
|
@retry(
|
|
|
|
stop=stop_after_attempt(max_tries),
|
|
|
|
wait=wait_fixed(wait_seconds),
|
|
|
|
before=before_log(logger, logging.INFO),
|
|
|
|
after=after_log(logger, logging.WARN),
|
|
|
|
)
|
2021-09-20 17:27:40 +08:00
|
|
|
async def check_db_conn_status() -> None:
|
2021-01-06 19:52:14 +08:00
|
|
|
logger.info("Checking db status ...")
|
|
|
|
try:
|
2021-09-27 23:45:22 +08:00
|
|
|
session = async_session_factory()
|
2021-01-06 19:52:14 +08:00
|
|
|
# Try to create session to check if DB is awake
|
2021-09-20 17:27:40 +08:00
|
|
|
await session.execute("SELECT 1")
|
|
|
|
await session.close()
|
|
|
|
logger.info("db session connection established. ")
|
2021-01-06 19:52:14 +08:00
|
|
|
except Exception as e:
|
|
|
|
logger.error(e)
|
|
|
|
raise e
|