
    h	                     6    d Z ddlmZ ddlmZmZ ddlmZ d Zy)zTasks auto-retry functionality.    )wraps)IgnoreRetry) get_exponential_backoff_intervalc           
      N    t        |j                  dt         dd                  t        |j                  dt         dd                  |j                  dt         di             t        |j                  dt         dd                  t	        |j                  dt         dd                  |j                  d	t         d	d
            rJt         d      s=t         j                         fd       } j                  |c _         _        yyy)z7Wrap task's `run` method with auto-retry functionality.autoretry_for dont_autoretry_forretry_kwargsretry_backoffFretry_backoff_maxiX  retry_jitterT	_orig_runc            	         	  
j                   | i |S # t        $ r  t        $ r  $ r  $ r}r9t        t	        t        d            
j                  j                        	d<   t        
d      rt        
d
j                        	d<    
j                  dd|i	}t        
d      rt        
d       |d }~ww xY w)Ng      ?)factorretriesmaximumfull_jitter	countdownoverride_max_retriesmax_retriesexcr	   )r   r   r   r   intmaxrequestr   hasattrgetattrr   retrydelattr)argskwargsr   retr   r
   r   r   r   r   tasks       P/var/www/Befach/backend/env/lib/python3.12/site-packages/celery/app/autoretry.pyrunz$add_autoretry_behaviour.<locals>.run#   s    %t~~t6v66   %    8#&s3'>#?$(LL$8$8$5(4	6 !- 4!7829$:P:>:J:J3LL/ !djj9S9L94!78D"89	#s    CBC  CN)	tuplegetr   floatr   r   r   r%   r   )	r#   optionsr%   r   r
   r   r   r   r   s	   `  @@@@@@r$   add_autoretry_behaviourr*      s&   OD/26	8M (D"6;	= ;;nb9L OD/59	;M 'D"5s;	= ;;nd;L WT;7	txx	 	 
	< $(88S C 8}    N)	__doc__
vine.utilsr   celery.exceptionsr   r   celery.utils.timer   r*   r	   r+   r$   <module>r0      s    %  + >:1r+   