
    `fb                         d Z ddlZddlZddlZddlZddlmZm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)AnyDict)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               I/var/www/html/env/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e$e%e&f         f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__I   s2    
 ,#6     c                     d S r)   r   r0   s    r$   on_startzBasePool.on_startR       r2   c                     dS )NTr   r4   s    r$   did_start_okzBasePool.did_start_okU   s    tr2   c                     d S r)   r   r4   s    r$   flushzBasePool.flushX   r6   r2   c                     d S r)   r   r4   s    r$   on_stopzBasePool.on_stop[   r6   r2   c                     d S r)   r   )r0   loops     r$   register_with_event_loopz!BasePool.register_with_event_loop^   r6   r2   c                     d S r)   r   r0   r   r   s      r$   on_applyzBasePool.on_applya   r6   r2   c                     d S r)   r   r4   s    r$   on_terminatezBasePool.on_terminated   r6   r2   c                     d S r)   r   r0   jobs     r$   on_soft_timeoutzBasePool.on_soft_timeoutg   r6   r2   c                     d S r)   r   rF   s     r$   on_hard_timeoutzBasePool.on_hard_timeoutj   r6   r2   c                     d S r)   r   rA   s      r$   maintain_poolzBasePool.maintain_poolm   r6   r2   c                 @    t          t          |            d          )Nz does not implement kill_jobNotImplementedErrortype)r0   r   signals      r$   terminate_jobzBasePool.terminate_jobp   s&    !Dzz7779 9 	9r2   c                 @    t          t          |            d          )Nz does not implement restartrN   r4   s    r$   restartzBasePool.restartt   s&    !Dzz6668 8 	8r2   c                 F    |                                   | j        | _        d S r)   )r<   	TERMINATE_stater4   s    r$   stopzBasePool.stopx   s    nr2   c                 F    | j         | _        |                                  d S r)   )rV   rW   rD   r4   s    r$   	terminatezBasePool.terminate|   s#    nr2   c                     t                               t          j                  | _        |                                  | j        | _        d S r)   )loggerisEnabledForloggingDEBUG_does_debugr5   RUNrW   r4   s    r$   startzBasePool.start   s4    !..w}==hr2   c                 F    | j         | _        |                                  d S r)   )CLOSErW   on_closer4   s    r$   closezBasePool.close   s    jr2   c                     d S r)   r   r4   s    r$   re   zBasePool.on_close   r6   r2   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`   r\   debugr   r   rB   r+   r.   )r0   r   r   r   r,   s        r$   apply_asynczBasePool.apply_async   s     "-v'rr4 	<LLA)D//4!@!@!)F"3"3T::< < < t}VT6 ()-151I( (  '( ( 	(r2   returnc                 J    | j         j        dz   | j         j        z   | j        dS )z
        Return configuration and statistics information. Subclasses should
        augment the data as required.

        :return: The returned value must be JSON-friendly.
        :)implementationzmax-concurrency)	__class__
__module____name__r*   r4   s    r$   	_get_infozBasePool._get_info   s/     #n7#=@WW#z
 
 	
r2   c                 *    |                                  S r)   )rs   r4   s    r$   infozBasePool.info   s    ~~r2   c                 "    | j         | j        k    S r)   )rW   ra   r4   s    r$   activezBasePool.active   s    {dh&&r2   c                     | j         S r)   )r*   r4   s    r$   num_processeszBasePool.num_processes   s
    zr2   )NTTr   Nr)   )NN),rr   rq   __qualname____doc__ra   rd   rV   r   Timersignal_safeis_greenrW   _poolr`   uses_semaphoretask_join_will_blockbody_can_be_bufferr1   r5   r8   r:   r<   r?   rB   rD   rH   rJ   rL   rR   rT   rX   rZ   rb   rf   re   rk   r   strr   rs   propertyru   rw   ry   r   r2   r$   r   r   /   s       
CEILE K HFEK NAE-1                       9 9 9 98 8 8% % %    
    ( ( ( ($

4S> 

 

 

 

     X  ' ' X'   X  r2   r   )r{   r^   osr   timetypingr   r   billiard.einfor   billiard.exceptionsr   kombu.utils.encodingr   celery.exceptionsr   r	   r
   celery.utilsr   celery.utils.logr   celery.utils.textr   __all__r\   r   r    r   r   r   r2   r$   <module>r      sN      				 



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