Ë
    ™V.jQ  ã                   ó€   — 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y)z*The consumers highly-optimized inner loop.é    N)Ú	bootsteps)ÚWorkerLostError)Ú
get_loggeré   )Ústate)ÚasynloopÚsynloopc                 ó¦   — 	 | j                  |¬«       y # t        $ r2}t        |dd «      }|�|t        j                  k7  r‚ Y d }~y Y d }~y d }~ww xY w)N©ÚtimeoutÚerrno)Údrain_eventsÚ	ExceptionÚgetattrr   ÚEAGAIN)Ú
connectionr   ÚexcÚ	exc_errnos       úUC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/worker/loops.pyÚ_quick_drainr      sR   € ðØ×Ñ¨ÐÕ0øÜò Ü˜C ¨$Ó/ˆ	ØÐ  Y´%·,±,Ò%>Øô &?Ô ûðús   ‚ •	Až#AÁAc                 ó’   ‡‡— d gŠ‰s‰S ‰j                  «       }|r‰j                  s‰S ˆˆfd„}| j                  ||z  ||f«       ‰S )Nc                 ó`   •— 	 ‰j                  | «       y # t        $ r}|‰d<   Y d }~y d }~ww xY w)Nr   )Úheartbeat_checkr   )ÚrateÚer   Úheartbeat_errors     €€r   Útickz#_enable_amqheartbeats.<locals>.tick&   s2   ø€ ð	#Ø×&Ñ& tÕ,øÜò 	#ð "#ˆO˜AÖûð	#ús   ƒ •	-ž(¨-)Úget_heartbeat_intervalÚsupports_heartbeatsÚcall_repeatedly)Útimerr   r   Ú	heartbeatr   r   s    `   @r   Ú_enable_amqheartbeatsr#      sX   ù€ Ø�f€OáØÐà×1Ñ1Ó3€IÙ˜*×8Ò8ØÐõ#ð 
×Ñ˜) dÑ*¨D°4°'Ô:ØÐó    c	                 óx  — t         j                  }	|j                  }
|j                  }| j	                  «       }t        |j                  ||¬«      }||_        | j                  j                  |«       | j                  |«       |j                  «        | j                  «        | j                  s%| j                  j                  «       st        d«      ‚|j                   j"                  dk(  r|j%                  t&        |«       ||_        |j+                  «       }	 |j,                  |	k(  rr| j.                  rft-        j0                  «        |d   �|d   ‚|j2                  |j4                  k7  r |
«        	 t7        |«       |j,                  |	k(  r| j.                  rŒf	 |j;                  «        y# t8        $ r |j+                  «       }Y ŒIw xY w# t<        $ r }t>        jA                  d|«       Y d}~yd}~ww xY w# 	 |j;                  «        w # t<        $ r }t>        jA                  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Ðä+¨C¯I©I°zÈÔO€Oà*€HÔØ‡N�N×+Ñ+¨CÔ0Ø× Ñ  Ô%Ø×ÑÔØ‡L�L„Nð
 ×Ò S§X¡X×%:Ñ%:Ô%<ÜÐ@ÓAÐAð
 ×Ñ×'Ñ'¨6Ò1Ø�‰”l JÔ/ð "€CÔØ�?‰?Ó€Dð?Ø�o‰o Ò$¨¯ªÜ× Ñ Ô"Ø˜qÑ!Ð-Ø% aÑ(Ð(ð
 �x‰x˜3Ÿ9™9Ò$Ù”ð)Ü�T”
ð �o‰o Ò$¨¯«ð 	?Ø�I‰I�Køô	 !ò )Ø—‘Ó(’ð)ûô
 ò 	?Ü×ÑØ8¸#÷?ñ ?ûð	?ûð	?Ø�I‰I�KøÜò 	?Ü×ÑØ8¸#÷?ñ ?ûð	?ýss   ÄAG: Å6F/ ÆG: ÆG Æ/GÇG: Ç
GÇG: Ç	G7ÇG2Ç2G7Ç:H9Ç<HÈH9È	H6ÈH1È,H9È1H6È6H9c	                 óª  — t         j                  }
| j                  «       }| j                  }dg}t	        | j
                  dd«      rt        | j                  ||¬«      }||_        |j                  «        | j                  «        |j                  |
k(  rŒ| j                  rt        j                  «        |d   �|d   ‚|j                  |j                  k7  r|j!                  «        	  |«        |j#                  d¬«       |j                  |
k(  r| j                  rŒ}yyyy# t$        j&                  $ r Y Œ5t(        $ r |j                  |
k(  r‚ Y ŒOw xY w)zEFallback blocking event loop for transports that doesn't support AIO.NÚis_greenFr&   r   ç       @r   )r   r(   r+   Úperform_pending_operationsr   r2   r#   r!   r,   r/   r0   r   r   r9   r:   r;   r)   r   Úsocketr   ÚOSError)rA   r   rB   rC   rD   rE   r"   rF   rG   Úkwargsr(   rJ   rO   r   s                 r   r	   r	   l   s'  € ô �-‰-€CØ×.Ñ.Ó0ÐØ!$×!?Ñ!?ÐØ�f€OÜˆs�x‰x˜ UÔ+Ü/°·	±	¸:ÈFÔSˆØ*€HÔØ×ÑÔà‡L�L„Nà
�/‰/˜SÒ
  S§^¢^Ü×ÑÔØ˜1ÑÐ)Ø! !Ñ$Ð$Ø�8‰8�s—y‘yÒ Ø�J‰JŒLð	Ù&Ô(Ø×#Ñ#¨CÐ#Ô0ð �/‰/˜SÒ
  S§^¤^Ð
  ^Ð
 øô �~‰~ò 	ÙÜò 	Ø�‰ #Ò%Øñ &ð	ús   Ã)D" Ä"EÄ7EÅE)gš™™™™™¹?)rN   )Ú__doc__r   rP   Úceleryr   Úcelery.exceptionsr   Úcelery.utils.logr   Ú r   Ú__all__Ú__name__r?   r   r#   r   r	   © r$   r   Ú<module>r[      sJ   ðÙ 0Û Û å Ý -Ý 'å à
!€ñ
 
�HÓ	€óóð. '*ó7?ðv &)ôr$   