
    `fQ                         d 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
 dZ ee          Zdd
ZddZ	 ddZ	 ddZdS )z*The consumers highly-optimized inner loop.    N)	bootsteps)WorkerLostError)
get_logger   )state)asynloopsynloop皙?c                     	 |                      |           d S # t          $ r5}t          |dd           }||t          j        k    r Y d }~d S Y d }~d S d }~ww xY w)Ntimeouterrno)drain_events	Exceptiongetattrr   EAGAIN)
connectionr   exc	exc_errnos       E/var/www/html/env/lib/python3.11/site-packages/celery/worker/loops.py_quick_drainr      s    00000   C$//	 Y%,%>%> !     %>%>%>%>%>%>s    
A$AA       @c                     d gsS                                  }|rj        sS fd}|                     ||z  ||f           S )Nc                 n    	                      |            d S # t          $ r}|d<   Y d }~d S d }~ww xY w)Nr   )heartbeat_checkr   )rateer   heartbeat_errors     r   tickz#_enable_amqheartbeats.<locals>.tick&   s_    	#&&t,,,,, 	# 	# 	# "#OA	#s    
4/4)get_heartbeat_intervalsupports_heartbeatscall_repeatedly)timerr   r   	heartbeatr   r   s    `   @r   _enable_amqheartbeatsr%      s    fO 1133I *8 # # # # # # 
)d*D4':::    c	                    t           j        }	|j        }
|j        }|                                 }t          |j        ||          }||_        | j        	                    |           | 	                    |           |
                                 |                                  | j        s(| j                                        st          d          |j        j        dk    r|                    t&          |           ||_        |                                }	 |j        |	k    r| j        rt-          j                     |d         |d         |j        |j        k    r
 |
             	 t7          |           n$# t8          $ r |                                }Y nw xY w|j        |	k    r| j        	 |                                 dS # t<          $ r&}t>                               d|           Y d}~dS d}~ww xY w# 	 |                                 w # t<          $ r%}t>                               d|           Y d}~w d}~ww xY wxY w)zNon-blocking event loop.r   z Could not start worker processesamqpr   Nz&Error cleaning up after event loop: %r)!r   RUNupdateconnection_errorscreate_task_handlerr%   r#   
on_message
controllerregister_with_event_loopconsumeon_readyrestart_countpooldid_start_okr   	transportdriver_type	call_soonr   propagate_errorscreate_loopr   r   maybe_shutdownprevvaluenextStopIterationresetr   logger	exception)objr   consumer	blueprinthubqosr$   clockhbrater*   
update_qoserrorson_task_receivedr   loopr   s                   r   r   r   2   s    -CJ)F..00+CIzOOOO*HN++C000  %%%LLNNN
  BSX%:%:%<%< B@AAA
 '611lJ/// "C??D?o$$$ """q!-%a((
 x39$$
)T



  ) ) )(() o$$$ 	?IIKKKKK 	? 	? 	?8#? ? ? ? ? ? ? ? ?	?	?IIKKKK 	? 	? 	?8#? ? ? ? ? ? ? ?	?ss   AG: *E: 9G: :FG: FG: 1G 
G7G22G7:I<HI
I H;6I;I  Ic	                    t           j        }
|                                 }| j        }dg}t	          | j        dd          rt          | j        ||          }||_        |	                                 | 
                                 |j        |
k    r| j        rt          j                     |d         |d         |j        |j        k    r|                                 	  |             |                    d           n,# t$          j        $ r Y nt(          $ r |j        |
k    r Y nw xY w|j        |
k    r| j        dS dS dS dS )zEFallback blocking event loop for transports that doesn't support AIO.Nis_greenFr(   r   r   r   )r   r*   r-   perform_pending_operationsr   r4   r%   r#   r.   r1   r2   r   r   r;   r<   r=   r+   r   socketr   OSError)rC   r   rD   rE   rF   rG   r$   rH   rI   kwargsr*   rL   rP   r   s                 r   r	   r	   l   s~    -C..00!$!?fOsxU++ T/	:FSSS*HLLNNN
/S
 
 S^
 1)!!$$8sy  JJLLL	&&(((##C#0000~ 	 	 	D 	 	 	#%% &%	 /S
 
 S^
 
 
 
 
 
 
 
 
 s   ! D D+D+*D+)r
   )r   )__doc__r   rQ   celeryr   celery.exceptionsr   celery.utils.logr    r   __all____name__rA   r   r%   r   r	    r&   r   <module>r\      s    0 0         - - - - - - ' ' ' ' ' '      
!
 
H		      . '*7? 7? 7? 7?v &)     r&   