Moved wait_for_db function to utils module
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								api/utils.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								api/utils.py
									
									
									
									
									
								
							@@ -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():
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user