Advertisement
DrAungWinHtut

myconnection.py

Jan 23rd, 2025
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. import logging
  2. import time
  3. import mysql.connector
  4.  
  5. # Set up logger
  6. logger = logging.getLogger(__name__)
  7. logger.setLevel(logging.INFO)
  8. formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
  9.  
  10. # Log to console
  11. handler = logging.StreamHandler()
  12. handler.setFormatter(formatter)
  13. logger.addHandler(handler)
  14.  
  15. # Also log to a file
  16. file_handler = logging.FileHandler("cpy-errors.log")
  17. file_handler.setFormatter(formatter)
  18. logger.addHandler(file_handler)
  19.  
  20.  
  21. def connect_to_mysql(config, attempts=3, delay=2):
  22.     attempt = 1
  23.     # Implement a reconnection routine
  24.     while attempt < attempts + 1:
  25.         try:
  26.             return mysql.connector.connect(**config)
  27.         except (mysql.connector.Error, IOError) as err:
  28.             if attempts is attempt:
  29.                 # Attempts to reconnect failed; returning None
  30.                 logger.info("Failed to connect, exiting without a connection: %s", err)
  31.                 return None
  32.             logger.info(
  33.                 "Connection failed: %s. Retrying (%d/%d)...",
  34.                 err,
  35.                 attempt,
  36.                 attempts - 1,
  37.             )
  38.             # progressive reconnect delay
  39.             time.sleep(delay**attempt)
  40.             attempt += 1
  41.     return None
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement