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 models import db, RevokedToken
import os
from tech_views import tech_bp
from utils import init_db, wait_for_db
from views import user_bp
from werkzeug.exceptions import HTTPException

View File

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