
    pj                     p    S SK Jr  S SKrS SKrS SKrS SKJr  \R                  " S5      r	Sr
Sr\S 5       rg)    )contextmanagerN)	DB_CONFIGAI_Strategy   g       @c               #     #    Sn [        [        5       H(  n [        R                  R                  " S0 [
        D6n  O   U e Uv   UR#                  5          UR)                  5         g! [        R                  R                   Ga  nUn UR                  S;   =(       db    S[        U5      R                  5       ;   =(       d?    S[        U5      R                  5       ;   =(       d    S[        U5      R                  5       ;   nU(       a  U[        S-
  :X  a  e [        SU-  -  n[        R                  SUS-    S	[         S
[        U5      R                   S[        U5      SS  SU S35        [        R                   " U5         SnAGMw  SnAff = f! [$         a    UR'                  5         e f = f! UR)                  5         f = f7f)u  Yields MySQL connection с автоматическим retry на сбой сети.

Audit 2026-08-03: добавлены до 3 retry с экспоненциальным backoff
(2s → 4s → 8s). Ловит только сетевые ошибки (mysql.connector.Error
с кодами из Network* и Interface* категорий). Логические ошибки
(например, дубликат PK) сразу прокидываются выше.
N)i  i  i  i  zname resolutionzconnection resetzwrong version number      zget_connection: attempt /z	 failed: z: x   u    — retry in s )rangeDB_MAX_RETRIESmysql	connectorconnectr   ErrorerrnostrlowerDB_RETRY_BACKOFF_SECloggerwarningtype__name__timesleepcommit	Exceptionrollbackclose)last_excattemptconne	retryablewait_secs         ./home/ai/projects/AI_Strategy/db/connection.pyget_connectionr)      s     H(	!??**7Y7D ), 

 	

7 $$ 	!H 33 <$A6<%Q7< *SV\\^;	  >A+= =+qG|<HNN*719+Q~6Fi7##$Bs1vds|nN8*AO JJx  !	!.   	

sR   G$A)GF G)FC<FGFGF//F2 2GG)
contextlibr   r   loggingmysql.connectorr   configr   	getLoggerr   r   r   r)   r       r(   <module>r0      sE    %    			=	)   ( (r/   