
     h                         d Z ddlZddlZddl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mZmZ ddlmZ ddlmZ dd	lmZ d
Z ed          Zdddddej        dej        fdZ G d d          ZdS )zBase Execution Pool.    N)ExceptionInfo)WorkerLostError)	safe_repr)WorkerShutdownWorkerTerminatereraise)timer2)
get_logger)truncate)BasePoolapply_targetzcelery.pool c	           	         |si n|}|r ||p	 |             |                       	  | |i |}
 ||
           dS # |$ r  t           $ r  t          t          f$ r  t          $ r}	 t	          t
          t          t          |                    t          j                    d                    n'# t
          $ r  |t                                 Y n
w xY wY d}~dS Y d}~dS d}~ww xY w)z#Apply function within pool context.   N)
	Exceptionr   r   BaseExceptionr   r   reprsysexc_infor   )targetargskwargscallbackaccept_callbackpidgetpid	propagate	monotonic_retexcs               S/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/celery/concurrency/base.pyr   r      sp    )RR6F 6vvxx555fd%f%% 	       O,    & & &	&O_T#YY%?%?LNN1%' ' ' ' 	& 	& 	&H]__%%%%%	&' ' ' ' ' ' &%%%%%&s4   = *C((AB0/C#0!CC#CC##C(c                      e Zd ZdZdZdZdZej        ZdZ	dZ
dZdZdZdZdZdZ	 	 d d	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd!dZd Zd Zd Zd Z d Z!d Z"d"dZ#d Z$e%d             Z&e%d             Z'e%d             Z(dS )#r   z
Task pool.   r      TFNr   c                 Z    || _         || _        || _        || _        || _        || _        d S N)limitputlocksoptionsforking_enablecallbacks_propagateapp)selfr(   r)   r+   r,   r-   r*   s          r"   __init__zBasePool.__init__H   s2    
 ,#6     c                     d S r'   r   r.   s    r"   on_startzBasePool.on_startQ       r0   c                     dS )NTr   r2   s    r"   did_start_okzBasePool.did_start_okT   s    tr0   c                     d S r'   r   r2   s    r"   flushzBasePool.flushW   r4   r0   c                     d S r'   r   r2   s    r"   on_stopzBasePool.on_stopZ   r4   r0   c                     d S r'   r   )r.   loops     r"   register_with_event_loopz!BasePool.register_with_event_loop]   r4   r0   c                     d S r'   r   r.   r   r   s      r"   on_applyzBasePool.on_apply`   r4   r0   c                     d S r'   r   r2   s    r"   on_terminatezBasePool.on_terminatec   r4   r0   c                     d S r'   r   r.   jobs     r"   on_soft_timeoutzBasePool.on_soft_timeoutf   r4   r0   c                     d S r'   r   rD   s     r"   on_hard_timeoutzBasePool.on_hard_timeouti   r4   r0   c                     d S r'   r   r?   s      r"   maintain_poolzBasePool.maintain_pooll   r4   r0   c                 @    t          t          |            d          )Nz does not implement kill_jobNotImplementedErrortype)r.   r   signals      r"   terminate_jobzBasePool.terminate_jobo   s&    !Dzz7779 9 	9r0   c                 @    t          t          |            d          )Nz does not implement restartrL   r2   s    r"   restartzBasePool.restarts   s&    !Dzz6668 8 	8r0   c                 F    |                                   | j        | _        d S r'   )r:   	TERMINATE_stater2   s    r"   stopzBasePool.stopw   s    nr0   c                 F    | j         | _        |                                  d S r'   )rT   rU   rB   r2   s    r"   	terminatezBasePool.terminate{   s#    nr0   c                     t                               t          j                  | _        |                                  | j        | _        d S r'   )loggerisEnabledForloggingDEBUG_does_debugr3   RUNrU   r2   s    r"   startzBasePool.start   s4    !..w}==hr0   c                 F    | j         | _        |                                  d S r'   )CLOSErU   on_closer2   s    r"   closezBasePool.close   s    jr0   c                     d S r'   r   r2   s    r"   rc   zBasePool.on_close   r4   r0   c           
         |si n|}|sg n|}| j         rSt                              d|t          t	          |          d          t          t	          |          d                      | j        |||f| j        | j        d|S )zEquivalent of the :func:`apply` built-in function.

        Callbacks should optimally return as soon as possible since
        otherwise the thread which handles the result will get blocked.
        z&TaskPool: Apply %s (args:%s kwargs:%s)i   )waitforslotr,   )r^   rZ   debugr   r   r@   r)   r,   )r.   r   r   r   r*   s        r"   apply_asynczBasePool.apply_async   s     "-v'rr4 	<LLA)D//4!@!@!)F"3"3T::< < < t}VT6 ()-151I( (  '( ( 	(r0   c                     d| j         iS )Nzmax-concurrencyr(   r2   s    r"   	_get_infozBasePool._get_info   s    tz
 	
r0   c                 *    |                                  S r'   )rl   r2   s    r"   infozBasePool.info   s    ~~r0   c                 "    | j         | j        k    S r'   )rU   r_   r2   s    r"   activezBasePool.active   s    {dh&&r0   c                     | j         S r'   rk   r2   s    r"   num_processeszBasePool.num_processes   s
    zr0   )NTTr   Nr'   )NN))__name__
__module____qualname____doc__r_   rb   rT   r	   Timersignal_safeis_greenrU   _poolr^   uses_semaphoretask_join_will_blockbody_can_be_bufferr/   r3   r6   r8   r:   r=   r@   rB   rF   rH   rJ   rP   rR   rV   rX   r`   rd   rc   ri   rl   propertyrn   rp   rr   r   r0   r"   r   r   .   s       
CEILE K HFEK NAE-1                       9 9 9 98 8 8% % %    
    ( ( ( ($
 
 

     X  ' ' X'   X  r0   r   )rv   r\   osr   timebilliard.einfor   billiard.exceptionsr   kombu.utils.encodingr   celery.exceptionsr   r   r   celery.utilsr	   celery.utils.logr
   celery.utils.textr   __all__rZ   r   r   r   r   r   r0   r"   <module>r      s6      				 



  ( ( ( ( ( ( / / / / / / * * * * * * F F F F F F F F F F       ' ' ' ' ' ' & & & & & &
&	M	"	" !!%4	   2~ ~ ~ ~ ~ ~ ~ ~ ~ ~r0   