Moved wait_for_db function to utils module

This commit is contained in:
Marcin-Ramotowski
2025-06-11 19:48:58 +00:00
parent e941f45118
commit d675d30d9d
2 changed files with 10 additions and 9 deletions

View File

@ -4,7 +4,6 @@ from flask_jwt_extended import JWTManager
from jwt import ExpiredSignatureError from jwt import ExpiredSignatureError
from models import db, RevokedToken from models import db, RevokedToken
import os import os
from tech_views import tech_bp
from utils import init_db, wait_for_db from utils import init_db, wait_for_db
from views import user_bp from views import user_bp
from werkzeug.exceptions import HTTPException from werkzeug.exceptions import HTTPException

View File

@ -3,7 +3,7 @@ from flask_jwt_extended import get_jwt_identity
from models import User, db from models import User, db
import os import os
from sqlalchemy import text from sqlalchemy import text
from sqlalchemy.exc import DatabaseError, InterfaceError from sqlalchemy.exc import DatabaseError
import time import time
from werkzeug.security import generate_password_hash from werkzeug.security import generate_password_hash
@ -32,18 +32,20 @@ def get_user_or_404(user_id):
return user return user
def wait_for_db(max_retries): MAX_RETRIES = 100
"Try to connect with database <max_retries> times."
global db_ready def wait_for_db():
for _ in range(max_retries): for retries in range(MAX_RETRIES):
try: try:
with db.engine.connect() as connection: with db.engine.connect() as connection:
connection.execute(text("SELECT 1")) connection.execute(text("SELECT 1"))
db_ready = True print("Successfully connected with database.")
return return
except DatabaseError | InterfaceError: except DatabaseError:
print(f"Waiting for database... (retry {retries + 1})")
time.sleep(3) time.sleep(3)
raise Exception("Failed to connect to database.") print("Failed to connect to database.")
raise Exception("Database not ready after multiple retries.")
def init_db(): def init_db():