
     h                     |   d Z ddlZddl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
mZ ddlmZ ddlmZ ddlmZmZ ddlmZ d	Zd
e ej                    dZdZdZdZdZi Z ej                    Z ej                    Z eee          Z  e            Z!dgZ" eee          Z#dZ$dZ%d Z&d Z'ej(        ej)        fdZ*dej)        e!j+        fdZ,dej-        ej.        ej.        fdZ/ej0        1                    d          pej0        1                    d          Z2 e3ej0        1                    d          pej0        1                    d          pd          Z4e2rQddl5Z5ddl6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z< da=da>da?da@e4ZAg ZBe*ZCe/ZD e9            jE        dk    re5jF        d             ZGd Z*d  Z/ G d! d"          ZHdS )#zwInternal worker state (global).

This includes the currently active and reserved tasks,
statistics, and revoked tasks.
    N)Counter)picklepickle_protocol)cached_property)__version__)WorkerShutdownWorkerTerminate)
LimitedSet)
SOFTWARE_INFOreserved_requestsactive_requeststotal_countrevokedtask_reservedmaybe_shutdowntask_accepted
task_ready
Persistentz	py-celery)sw_identsw_versw_sysiP  i  i0*  )maxlenexpiresc                  L   t                                            t                                           t                                           t                                           t
                                           dgt          d d <   t                                           d S )Nr   )requestsclearr   r   successful_requestsr   all_total_countr        O/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/celery/worker/state.pyreset_stater"   J   s{    NNOAAAMMOOOOOr    c                      t           t           durt          t                     t          t          durt          t                    dS dS )z Shutdown if flags have been set.NF)should_terminater	   should_stopr   r   r    r!   r   r   T   sN    #(8(E(E.///		 [%=%=[))) 
!	 %=%=r    c                 >     || j         |             ||            dS )z2Update global state when a task has been reserved.N)id)requestadd_requestadd_reserved_requests      r!   r   r   \   s/     K
G$$$!!!!!r    c                 |    |st           } ||             || j        di           t           dxx         dz  cc<   dS )z2Update global state when a task has been accepted.   r   N)r   name)r(   _all_total_countadd_active_requestadd_to_total_counts       r!   r   r   d   s]    
  +*wa()))A!r    Fc                     |rt                               | j                    || j        d            ||             ||            dS )z)Update global state when a task is ready.N)r   addr'   )r(   
successfulremove_requestdiscard_active_requestdiscard_reserved_requests        r!   r   r   p   s^      ,
+++N7:t$$$7###W%%%%%r    C_BENCHCELERY_BENCHC_BENCH_EVERYCELERY_BENCH_EVERY)	monotonic)current_process)memdump
sample_memMainProcessc                  6   t           t          t          d                    t          t           z
                       t          d                    t	          t
                    t          t
                    z                       t                       d S d S d S )Nz- Time spent in benchmark: {!r}z	- Avg: {})bench_first
bench_lastprintformatsumbench_samplelenr=   r   r    r!   on_shutdownrH      s    &:+A7>>,. . / / /k((%%L(9(99; ; < < <					 '&+A+Ar    c                 d    d}t           t                      xa }t          |at          |           S )z-Called when a task is reserved by the worker.N)bench_startr;   rA   
__reserved)r(   nows     r!   r   r      s6      )+K#K'"""r    c                 f   t           dz  a t           t          z  st                      }|t          z
  }t	          d                    t          |                     t          j                                         |xaa	t                              |           t                       t          |           S )z Called when a task is completed.r,   zG- Time spent processing {} tasks (since first task received): ~{:.4f}s
)	all_countbench_everyr;   rJ   rC   rD   sysstdoutflushrB   rF   appendr>   __ready)r(   rL   diffs      r!   r   r      s    
 	Q	;& 	++C$D //5vk4/H/HJ J JJ'**K*%%%LLLwr    c                       e Zd ZdZeZeZej	        Z	ej
        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 Zd Zd Zed             Zed             ZdS )r   zStores worker state between restarts.

    This is the persistent data stored by the worker when
    :option:`celery worker --statedb` is enabled.

    Currently only stores revoked task id's.
    FNc                 X    || _         || _        || _        |                                  d S N)statefilenameclockmerge)selfrY   rZ   r[   s       r!   __init__zPersistent.__init__   s(    
 


r    c                 P    | j                             | j        | j        d          S )NT)protocol	writeback)storageopenrZ   r`   r]   s    r!   rc   zPersistent.open   s,    |  MDMT ! 
 
 	
r    c                 :    |                      | j                   d S rX   )_merge_withdbrd   s    r!   r\   zPersistent.merge   s    !!!!!r    c                 l    |                      | j                   | j                                         d S rX   )
_sync_withrg   syncrd   s    r!   rj   zPersistent.sync   s)       r    c                 X    | j         r"| j                                         d| _         d S d S )NF)_is_openrg   closerd   s    r!   rm   zPersistent.close   s0    = 	"GMMOOO!DMMM	" 	"r    c                 V    |                                   |                                  d S rX   )rj   rm   rd   s    r!   savezPersistent.save   s     		

r    c                 Z    |                      |           |                     |           |S rX   )_merge_revoked_merge_clockr]   ds     r!   rf   zPersistent._merge_with   s/    A!r    c                     | j                                          |                    d|                     |                     | j                             | j        r| j                                        ndd           |S )N   r   )	__proto__zrevokedr[   )_revoked_taskspurgeupdatecompress_dumpsr[   forwardrs   s     r!   ri   zPersistent._sync_with   s|    !!###	dkk$2E&F&FGG-1Z>TZ'')))Q
 
 	 	 	
 r    c                 |    | j         r4| j                             |                    d          pd          |d<   d S d S )Nr[   r   )r[   adjustgetrs   s     r!   rr   zPersistent._merge_clock   sE    : 	@**155>>+>Q??AgJJJ	@ 	@r    c                    	 |                      |d                    nJ# t          $ r= 	 |                     |                    d                     n# t          $ r Y nw xY wY nw xY w| j                                         d S )Nrx   r   )_merge_revoked_v3KeyError_merge_revoked_v2popry   rz   rs   s     r!   rq   zPersistent._merge_revoked   s    	""1Z=1111 	 	 	&&quuY'7'78888   	 	!!#####s2    
A%(AA%
AA%AA%$A%c                     |rA| j                             t          j        |                     |                               d S d S rX   )ry   r{   r   loads
decompress)r]   rx   s     r!   r   zPersistent._merge_revoked_v3  sJ     	P&&v|DOOH4M4M'N'NOOOOO	P 	Pr    c                     t          |t                    s|                     |          S | j                            |           d S rX   )
isinstancer
   _merge_revoked_v1ry   r{   )r]   saveds     r!   r   zPersistent._merge_revoked_v2  sE    %,, 	1))%000""5)))))r    c                 >    | j         j        }|D ]} ||           d S rX   )ry   r2   )r]   r   r2   items       r!   r   zPersistent._merge_revoked_v1  s5    !% 	 	DCIIII	 	r    c                 8    t          j        || j                  S )N)r`   )r   dumpsr`   )r]   objs     r!   r}   zPersistent._dumps  s    |C$-8888r    c                     | j         j        S rX   )rY   r   rd   s    r!   ry   zPersistent._revoked_tasks  s    z!!r    c                 8    d| _         |                                 S )NT)rl   rc   rd   s    r!   rg   zPersistent.db  s    yy{{r    rX   )__name__
__module____qualname____doc__shelverb   r   r`   zlibr|   r   rl   r^   rc   r\   rj   rm   ro   rf   ri   rr   rq   r   r   r   r}   propertyry   r   rg   r   r    r!   r   r      sP         GH}HJH   
 
 

" " "  " " "
    
  @ @ @	$ 	$ 	$P P P* * *  
9 9 9 " " X"   _  r    r   )Ir   osplatformr   rP   weakrefr   collectionsr   kombu.serializationr   r   kombu.utils.objectsr   celeryr   celery.exceptionsr   r	   celery.utils.collectionsr
   __all__systemr   REVOKES_MAXSUCCESSFUL_MAXREVOKE_EXPIRESSUCCESSFUL_EXPIRESr   WeakSetr   r   r   r   r   r   r%   r$   r"   r   __setitem__r2   r   r{   r   r   discardr   environr   r7   intr9   atexittimer;   billiard.processr<   celery.utils.debugr=   r>   rN   rA   rJ   rB   rO   rF   rK   rT   _nameregisterrH   r   r   r    r!   <module>r      s~   
 
			   



         7 7 7 7 7 7 7 7 / / / / / /       = = = = = = = = / / / / / / ho        $GO%%  "'/## !j);= = =  gii # *K
@
@
@   * * * '2'8'<" " " " $(%4%8%0%7	 	 	 	  &l&5&=(9(A	& & & & *..
#
#
Erz~~n'E'EBJNN?33 AJNN#788A<@B B
 6 MMM00000066666666IKKJKLJG-//		 	 
	
# 
# 
#     $` ` ` ` ` ` ` ` ` `r    