
    `f	                     8    d Z ddlmZ ddlmZmZ ddlmZ d ZdS )zTasks auto-retry functionality.    )wraps)IgnoreRetry) get_exponential_backoff_intervalc           
          t          |                    dt           dd                              t          |                    dt           dd                              |                    dt           di                     t          |                    dt           dd                              t	          |                    dt           dd                              |                    d	t           d	d
                    rKt           d          s=t           j                   fd            } j        |c _         _        dS dS dS )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}r;t          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       F/var/www/html/env/lib/python3.11/site-packages/celery/app/autoretry.pyrunz$add_autoretry_behaviour.<locals>.run#   sD   %t~t6v666       %         68#&s3'>'>#?#?$(L$8$5(4	6 6 6 !- 4!788 L29$:P:>:J3L 3LL/ !dj99S9L994!788 :D"899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6	8 	8 M (D"6;;	= 	=  ;;nb99 L OD/599	; 	; M 'D"5s;;	= 	=  ;;nd;; L  !1WT;77 !1	tx	 	 	 	 	 	 	 	 	 	 
	< $(8S C!1 !1 !1 !1    N)	__doc__
vine.utilsr   celery.exceptionsr   r   celery.utils.timer   r*   r	   r+   r$   <module>r0      s`    % %       + + + + + + + + > > > > > >:1 :1 :1 :1 :1r+   