
     h                         d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ dZ ee          Zd Zd Zej        ej        eej         e!efdZ"dS )z'Task execution strategy (optimization).    N)to_timestamp)	safe_repr)signals)trace)InvalidTaskError)symbol_by_name)
get_logger)saferepr)timezone   )create_request_cls)task_reserved)defaultc                 *   	 |                     dd          |                     di           }}|j         n5# t          $ r t          d          t          $ r t          d          w xY w|                     d          |                     d          |                     d          |                     d	          |                     d
          |                     d          |                     d          |                     d          |                     d          |                     d          |                     dd          |                     dd          |                     d          |                     d          |                     d          d}|                    | j        pi            |                     d          |                     d          |                     d          dd}|||f|d|                     dd          fS )zECreate a fresh protocol 2 message from a hybrid protocol 1/2 message.args kwargs!Message does not have args/kwargs(Task keyword arguments must be a mappinglangtaskidroot_id	parent_idgroupmethshadowetaexpiresretriesr   	timelimit)NNargsrepr
kwargsreprorigin)r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   	callbackserrbackschordNr%   r&   r'   chainTutc)getitemsKeyErrorr   AttributeErrorupdateheaders)messagebodyr   r   r0   embeds         R/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/celery/worker/strategy.pyhybrid_to_proto2r5      s   
xx++TXXh-C-Cf D D DBCCC 
 
 
6
 
 	

     hhtnn88I&&XXk**'""  ((8$$xx88I&&88Iq))XXk<88HHZ((hh|,,((8$$ G" NN7?(b))) XXk**HHZ(('""	 E &% '4%1F1FFFs	   36 2A(c                 8   	 |                     dd          |                     di           }}|j         n5# t          $ r t          d          t          $ r t          d          w xY w|                    t          |          t          |          | j                   	 |d         |d<   n# t          $ r Y nw xY w|                     d	          |                     d
          |                     d          dd}|||f|d|                     dd          fS )zConvert Task message protocol 1 arguments to protocol 2.

    Returns:
        Tuple: of ``(body, headers, already_decoded_status, utc)``
    r   r   r   r   r   )r"   r#   r0   tasksetr   r%   r&   r'   Nr(   Tr*   )r+   r,   r-   r   r.   r/   r
   r0   )r1   r2   r   r   r3   s        r4   proto1_to_proto2r8   C   sW   
xx++TXXh-C-Cf D D DBCCC 
 
 
6
 
 	

 	KK$F##    
YW    XXk**HHZ(('""	 E &% $dhhud.C.CCCs   36 2A(#B/ /
B<;B<c	                     j         j        t                              t          j                  j        oj        }	oj        |	o j	        j
        j        j        j         j        j        j        j        j        t'           j                  }
t+          |
 j                  j        j        j        t4          f fd	S )zDefault task execution strategy.

    Note:
        Strategies are here as an optimization, so sadly
        it's not very easy to override.
    )appc                    |1d| j         vr(| j        | j        d                                f\  }}}}n5d| j         v rt	          | | j                   \  }}}}n | |          \  }}}} | ||!||||          rOj        j        t          j                  t          j	                  d}	 t          j        |	d|	i           j        s	j        v r                                rd S t          j                                       $r  dj        j        j        j        j        j        j                            d	d
          j        oj                                        j        oj                                        
  
         d }
d }j        r	 j        r | %j                            }n |j        j                  }n]# t6          t8          f$ rI} dj        |                    d          d                               d           Y d }~nd }~ww xY wr !j                  }
|r-|
r+j                                           ||
dfd          S |r+j                                           |fd           "S |
r |
d          S  #           |rfd|D                          d S )Nr   F)on_ack	on_rejectr:   hostnameeventerr   connection_errorsr2   r0   decodedr*   )r   namer   r   data)extra)senderrequestztask-receivedr    r   )	uuidrB   r   r   r   r   r    r   r   z2Couldn't convert ETA %r to timestamp: %r. Task: %rT)safe)exc_info)requeuer      )priorityc                 &    g | ]} |          S r   r   ).0callbackreqs     r4   
<listcomp>z9default.<locals>.task_message_handler.<locals>.<listcomp>   s!    555xXXc]]555    )!payloadr2   r0   uses_utc_timezoner5   r   rB   r   r   r   
_app_traceLOG_RECEIVEDr   revokedr   task_receivedsendr"   r#   r   r   request_dictr+   r   	isoformatr*   r   OverflowError
ValueErrorinforejectqosincrement_eventually)&r1   r2   ackr_   r%   r   r0   rA   r*   contextbucketr   excrP   Req
_does_infor:   apply_eta_taskcall_atr@   consumererrorr?   
get_buckethandler>   r^   limit_post_eta
limit_taskr8   rate_limits_enabledrevoked_tasks
send_eventr   task_message_handlerr   task_sends_eventsto_system_tzs&                @r4   rs   z%default.<locals>.task_message_handler   s   <F'/99gouc6K6K6M6M+'D'7CC ((.>w?F/P /P+gw /?.>w.M.M+gwc&cH$:KwS	
 
 
  		L f!#(++#CJ//	 G D('&'9JKKKKK 	36]222F""(C"@@@ 		JV#(\#.s}(,,Y::G3 1 1 3 3?(=(=(?(?    7 		**7 >&,||CG'<'<==CC&,sw==C!:. * * *JgsCHH$H$7$7$H H H H

5
))))))))*  	+Z	**F 	'6 	'L--///73fa0@$%' ' ' ' 	(L--///GC#!<<<<'' 	.:c61---c 	6555595555ss   07G( (I9?H==I)r>   r@   loggerisEnabledForloggingINFOevent_dispatcherenabledrY   send_eventstimerri   rh   disable_rate_limitstask_buckets__getitem__on_task_request_limit_task_limit_post_etar   Requestr   pool
controllerstaterW   r   )r   r:   rj   r^   rk   r   ru   bytesr8   eventsr   rf   rg   rh   ri   r@   r?   rl   rm   r>   rn   ro   rp   rq   rr   rs   rt   s   ``````` `  @@@@@@@@@@@@@@@@r4   r   r   d   s     H 2$$W\22J 'G(F)W\J34#3n$G,N&::&2J%F%J-NT\**G
WdHM8WRU
V
V
VC'-5M +7J J J J J J J J J J J J J J J J J J J J J J J J J J J J JV  rR   )#__doc__rx   kombu.asynchronous.timerr   kombu.utils.encodingr   celeryr   
celery.appr   rU   celery.exceptionsr   celery.utils.importsr   celery.utils.logr	   celery.utils.safereprr
   celery.utils.timer   rF   r   r   r   __all____name__rv   r5   r8   r^   rk   	to_systemr   r   r   rR   r4   <module>r      sP   - -  1 1 1 1 1 1 * * * * * *       * * * * * * . . . . . . / / / / / / ' ' ' ' ' ' * * * * * * & & & & & & ' ' ' ' ' '            
	H		&G &G &GRD D DD FL!+5-l  l  l  l  l  l rR   