
    h	                     6    S r SSKJr  SSKJrJr  SSKJr  S rg)zTasks auto-retry functionality.    )wraps)IgnoreRetry) get_exponential_backoff_intervalc           
      d  ^ ^^^^^^ [        UR                  S[        T SS5      5      5      m[        UR                  S[        T SS5      5      5      mUR                  S[        T S0 5      5      m[        UR                  S[        T SS5      5      5      m[	        UR                  S[        T SS5      5      5      mUR                  S	[        T S	S
5      5      mT(       aP  [        T S5      (       d>  [        T R                  5      UUUUUUU 4S j5       nT R                  UsT l        T l        ggg)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            	        >  T
R                   " U 0 UD6$ ! [         a    e [         a    e T a    e T a  nT(       a6  [        [	        [        ST5      5      T
R                  R                  TTS9T	S'   [        T
S5      (       a  [        T
ST
R                  5      T	S'   T
R                  " SSU0T	D6n[        T
S5      (       a  [        T
S5        UeS nAff = f)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       <D:\TimeStamps\venv\Lib\site-packages\celery/app/autoretry.pyrun$add_autoretry_behaviour.<locals>.run#   s    ~~t6v66   %    8#&s3'>#?$(LL$8$8$5(4	6 !- 4!78829$:P:>:J:J3LL/ jj9S9L94!78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7	txx	 	 
	< $(88S C 8}    N)	__doc__
vine.utilsr   celery.exceptionsr   r   celery.utils.timer   r+   r	   r,   r$   <module>r1      s    %  + >:1r,   