Ë
    —V.jë3  ã                   ód  — 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 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mZ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$m%Z% ddl&m'Z' ddl(m)Z) dZ* e#e+«      Z,ej                  j[                  d«      Z. e/ed«      Z0g d¢Z1dZ2dZ3d„ Z4ejj                  fd„Z6 G d„ de)«      Z7dddefd„Z8e
dk(  r ee8d d!e¬"«      Z9n ee8d d¬#«      Z9e.s ee8dd!e¬"«      Z:nd$„ xZ9Z:d%„ Z;e.s ee8d&e;e¬'«      Z<nd(„ Z<d)„ Z=d.d*„Z>d/d+„Z?	 	 d0d,„Z@d.d-„ZAy)1zäWorker command-line program.

This module is the 'program-version' of :mod:`celery.worker`.

It does everything necessary to run that module
as an actual application, like installing signal handlers,
platform tweaks, and so on.
é    N)Údatetime)Úpartial)ÚREMAP_SIGTERM)Úcurrent_process)Úsafe_str)ÚVERSION_BANNERÚ	platformsÚsignals)Útrace)Ú	AppLoader)Ú
EX_FAILUREÚEX_OKÚcheck_privileges)ÚstaticÚterm)Úcry)Úqualname)Ú
get_loggerÚin_sighandlerÚset_in_sighandler)Ú	pluralize)ÚWorkController)ÚWorkerÚjavaÚpypy_version_info)ú --------------ú--- ***** -----ú-- ******* ----ú- *** --- * ---ú- ** ----------r    r    r    r   r   r   r   zÍ{hostname} v{version}

{platform} {timestamp}

[config]
.> app:         {app}
.> transport:   {conninfo}
.> results:     {results}
.> concurrency: {concurrency}
.> task events: {events}

[queues]
{queues}
z
[tasks]
{tasks}
c                  ó<   — ddl m}  t        d„  | «       D «       «      S )Nr   ©Ú	enumeratec              3   óV   K  — | ]!  }|j                   j                  d «      sd–— Œ# y­w)zDummy-é   N)ÚnameÚ
startswith)Ú.0Úts     úTC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/apps/worker.pyÚ	<genexpr>z&active_thread_count.<locals>.<genexpr>L   s(   è ø€ ð 3™+�QØ—f‘f×'Ñ'¨Ô1ô ™+ùs   ‚'))Ú	threadingr#   Úsumr"   s    r*   Úactive_thread_countr.   J   s    € Ý#Üñ 3™)œ+ó 3ó 3ð 3ó    c                 ó&   — t        d| › �|d¬«       y )NÚ
T©ÚfileÚflush)Úprint)ÚmsgÚfs     r*   Úsafe_sayr8   P   s   € Ü	ˆBˆsˆeˆ*˜1 DÖ)r/   c                   ó‚   ‡ — e Zd ZdZdd„Z	 	 dˆ fd„	Zd„ Zˆ fd„Zd„ Zd„ Z	dd„Z
d	„ Zdd
„Zd„ Zdd„Zd„ Zd„ Zd„ Zˆ xZS )r   zWorker as a program.c                 ó:  — || _         t        j                  | j                  | j                  «       t
        j                  j                  | j                  | | j                  j                  |¬«       t        | j                  j                  j                  «       y )N)ÚsenderÚinstanceÚconfÚoptions)Úquietr   Úsetup_worker_optimizationsÚappÚhostnamer
   Úceleryd_initÚsendr=   r   Úaccept_content)Úselfr?   Úkwargss      r*   Úon_before_initzWorker.on_before_initW   sj   € ØˆŒ
Ü×(Ñ(¨¯©°4·=±=ÔAô 	×Ñ×!Ñ!Ø—=‘=¨4Ø—‘—‘¨ð 	"ô 	
ô 	˜Ÿ™Ÿ™×5Ñ5Õ6r/   c                 ó€  •— | j                   j                  d|«      | _        | j                   j                  d|«      | _        t	        ‰| �  di |¤Ž || _        || _        t        j                  j                  «       | _        | j                   j                  j                  | j                  |�| n|¬«      | _        y )NÚworker_redirect_stdoutsÚworker_redirect_stdouts_level)Úenabled© )rA   ÚeitherÚredirect_stdoutsÚredirect_stdouts_levelÚsuperÚsetup_defaultsÚpurgeÚno_colorÚsysÚstdoutÚisattyÚ_isattyÚlogÚcoloredÚlogfile)rF   rS   rT   rO   rP   rG   Ú	__class__s         €r*   Úon_after_initzWorker.on_after_initc   s    ø€ ð !%§¡§¡Ø%Ð'7ó!9ˆÔà&*§h¡h§o¡oØ+Ð-Có'EˆÔ#ä‰ÑÑ( Ò(ØˆŒ
Ø ˆŒÜ—z‘z×(Ñ(Ó*ˆŒØ—x‘x—|‘|×+Ñ+Ø�L‰LØ$,Ð$8˜‘L¸hð ,ó 
ˆ�r/   c                 ó‚   — | j                  «       | _        t        j                  | j                  | j
                  «       y ©N)Úsetup_loggingÚ_custom_loggingr   r@   rA   rB   ©rF   s    r*   Úon_init_blueprintzWorker.on_init_blueprints   s-   € Ø#×1Ñ1Ó3ˆÔô 	×(Ñ(¨¯©°4·=±=ÕAr/   c                 óš  •— | j                   }t        ‰| �	  «        t        j                  j                  | j                  | |j                  ¬«       | j                  r| j                  «        | j                  s| j                  «        | j                  d«       | j                  | «       | j                  s1| j                  r%|j                   j                  | j"                  «       d}|j$                  }t'        |t(        «      r|j+                  «       dv}|r1|j                  j-                  «       rt.        j1                  d«       y y y )N)r;   r<   r=   z-active-T)zdjango.conf:settingszPlease run `celery upgrade settings path/to/settings.py` to avoid these warnings and to allow a smoother upgrade to Celery 6.0.)rA   rQ   Úon_startr
   Úceleryd_after_setuprD   rB   r=   rS   Úpurge_messagesr?   Úemit_bannerÚset_process_statusÚinstall_platform_tweaksra   rO   rY   rP   Ú_config_sourceÚ
isinstanceÚstrÚlowerÚmaybe_warn_deprecated_settingsÚloggerÚwarning)rF   rA   Úwarn_deprecatedÚconfig_sourcer\   s       €r*   re   zWorker.on_starty   s  ø€ Ø�h‰hˆÜ‰ÑÔô 	×#Ñ#×(Ñ(Ø—=‘=¨4°c·h±hð 	)ô 	
ð �:Š:Ø×ÑÔ!à�zŠzØ×ÑÔà×Ñ 
Ô+Ø×$Ñ$ TÔ*Ø×#Ò#¨×(=Ò(=Ø�G‰G×$Ñ$ T×%@Ñ%@ÔAð ˆØ×*Ñ*ˆÜ�m¤SÔ)ð ,×1Ñ1Ó3ð <ð ˆOñ Ø�x‰x×6Ñ6Ô8Ü—‘ð%õð 9ð r/   c                 óÌ  — t        j                  «       }|r0t        t        j                  t	        j
                  «       «      «       t        t        dj                  t        | j                  j                  d| j                  | ¬«      «      «      t        | j                  j                  | j                  «       xs d«      «      g«      «      t        j                  d¬«       y )NÚ z 
)ÚartlinesTr2   )r   Úsupports_imagesr5   Úimgcatr   Úlogor   Újoinrm   rZ   ÚcyanÚstartup_infoÚresetÚ
extra_inforU   Ú
__stdout__)rF   Ú	use_images     r*   rh   zWorker.emit_banner¡   s©   € ô ×(Ñ(Ó*ˆ	ÙÜ”$—+‘+œfŸk™k›mÓ,Ô-ÜŒh�r—w‘wÜ�—‘×!Ñ!Ø�t×(Ñ(°i°-Ð(Ó@óBó Cä�—‘×"Ñ" 4§?¡?Ó#4Ò#:¸Ó;Ó<ð 
ó ó ô —.‘.¨ö		.r/   c                 ó–   — t         j                  j                  |¬«       t        j	                  dt        | j                  «      «       y )N)r;   z	%s ready.)r
   Úworker_readyrD   rp   Úinfor   rB   )rF   Úconsumers     r*   Úon_consumer_readyzWorker.on_consumer_ready­   s0   € Ü×Ñ×!Ñ!¨Ð!Ô2Ü�‰�K¤¨$¯-©-Ó!8Õ9r/   c                 óÈ   — |€| j                   �| j                    }| j                  j                  j                  | j                  | j
                  d|| j                  ¬«      S )NF)rO   ÚcolorizerB   )rT   rA   rY   ÚsetupÚloglevelr[   rB   )rF   r‡   s     r*   r`   zWorker.setup_logging±   sU   € ØÐ §¡Ð 9ØŸ=™=Ð(ˆHØ�x‰x�|‰|×!Ñ!Ø�M‰M˜4Ÿ<™<Ø"¨XÀÇÁð "ó 
ð 	
r/   c           
      óî   — | j                   j                  «       5 }| j                   j                  j                  |¬«      }|rt	        d|› dt        |d«      › d�d¬«       d d d «       y # 1 sw Y   y xY w)N)Ú
connectionzpurge: Erased Ú Úmessagez from the queue.
T)r4   )rA   Úconnection_for_writeÚcontrolrS   r5   r   )rF   r‹   Úcounts      r*   rg   zWorker.purge_messages¹   sc   € Ø�X‰X×*Ñ*Ô,°
Ø—H‘H×$Ñ$×*Ñ*°jÐ*ÓAˆEÙÜ˜ u g¨Q¬y¸À	Ó/JÐ.KÐK]Ð^ÐfjÕk÷ -×,Ñ,ús   ›AA+Á+A4c                 óv   ‡‡— |j                  ˆˆfd„t        | j                  j                  «      D «       «      S )Nc              3   óT   •K  — | ]  }‰s|j                  ‰«      s
n|rd |› �–— Œ! y­w)z  . N)r'   )r(   ÚtaskÚinclude_builtinsÚint_s     €€r*   r+   z"Worker.tasklist.<locals>.<genexpr>À   s/   øè ø€ ð 
Ù&<˜dÙ1A�D—O‘O DÕ)Átð �4�&ŒMÑ&<ùs   ƒ%()rz   ÚsortedrA   Útasks)rF   r”   Úsepr•   s    ` `r*   ÚtasklistzWorker.tasklist¿   s.   ù€ Ø�x‰xô 
Ü&,¨T¯X©X¯^©^Ô&<ó
ó 
ð 	
r/   c                 óâ   — | j                   €y | j                   t        j                  k  rE| j                   t        j                  k  }| j	                  |¬«      }t
        j                  |¬«      S y )N)r”   )r—   )r‰   ÚloggingÚINFOÚDEBUGr™   ÚEXTRA_INFO_FMTÚformat)rF   r”   r™   s      r*   r~   zWorker.extra_infoÅ   s\   € Ø�=‰=Ð ØØ�=‰=œGŸL™LÒ(Ø#Ÿ}™}´·±Ñ=ÐØ—}‘}Ð6F�}ÓGˆHÜ!×(Ñ(¨xÐ(Ó8Ð8ð )r/   c                 óÄ  — | j                   }t        | j                  «      }dj                  |j                  xs dt        |«      «      }t        |j                  t        «      s4t        |j                  «      }|j                  d«      r|dd  }|d|› d�z  }| j                  r| j                  \  }}d|› d|› d	�}| j                  }t        |t        «      s|j                  }|d|j                  d
«      d   › d�z  }d}	| j                  sd}	t         j                  |t#        | j$                  «      t'        j(                  «       j+                  d¬«      t,        | j                   j/                  «       j1                  «       | j                   j2                  j1                  «       |t#        t5        j6                  «       «      |	|j8                  j:                  j                  dd¬«      ¬«
      j=                  «       }
|r4t?        |
«      D ]&  \  }}	 djA                  tB        |   |
|   g«      |
|<   Œ( djA                  |
«      dz   S # tD        $ r d|
|   z   |
|<   Y ŒSw xY w)Nz{}:{:#x}Ú__main__zcelery.loadersé   ú (Ú)z{min=z, max=Ú}Ú.éÿÿÿÿÚONz/OFF (enable -E to monitor tasks in this worker)r   )ÚmicrosecondF)ÚindentÚindent_first)
rA   rB   Ú	timestampÚversionÚconninfoÚresultsÚconcurrencyÚplatformÚeventsÚqueuesrŒ   z                r1   )#rA   rm   r°   rŸ   ÚmainÚidrl   Úloaderr   r   r'   Ú	autoscaleÚpool_clsÚ
__module__ÚsplitÚtask_eventsÚBANNERr   rB   r   ÚnowÚreplacer   r‹   Úas_uriÚbackendÚ	_platformr±   Úamqpr³   Ú
splitlinesr#   rz   ÚARTLINESÚ
IndexError)rF   rv   rA   r°   Úapprr¶   ÚmaxÚminÚpoolr²   ÚbannerÚiÚ_s                r*   r|   zWorker.startup_infoÍ   s  € Ø�h‰hˆÜ˜$×*Ñ*Ó+ˆØ× Ñ  §¡Ò!7¨Z¼¸C»ÓAˆÜ˜#Ÿ*™*¤iÔ0Ü˜cŸj™jÓ)ˆFØ× Ñ Ð!1Ô2Ø  ˜�Ø�b˜˜ �NÑ"ˆDØ�>Š>Ø—~‘~‰HˆC�Ø" 3 % v¨c¨U°"Ð5ˆKØ�}‰}ˆÜ˜$¤Ô$Ø—?‘?ˆDØ˜˜DŸJ™J s›O¨BÑ/Ð0°Ð2Ñ2ˆØˆØ×ÒØFˆFä—‘ØÜ˜dŸm™mÓ,Ü—l‘l“n×,Ñ,¸Ð,Ó;Ü"Ø—X‘X×(Ñ(Ó*×1Ñ1Ó3Ø—H‘H×$Ñ$×+Ñ+Ó-Ø#Üœi×0Ñ0Ó2Ó3ØØ—8‘8—?‘?×)Ñ)°ÀÐ)ÓGð ó 
÷ ‰*‹,ð 	ñ Ü! &Ö)‘��1ð5Ø #§¡¬(°1©+°v¸a±yÐ)AÓ B�F˜1’Ið *ð
 �y‰y˜Ó  4Ñ'Ð'øô "ò 5Ø (¨6°!©9Ñ 4�F˜1“Ið5ús   È IÉIÉIc                 ó,  — | j                   j                  r| j                  «        | j                  s-| j                   j                  rt	        |«       nt        |«       t        |«       t        |«       t        |«       t        «        t        «        y)z1Install platform specific tweaks and workarounds.N)rA   ÚIS_macOSÚ macOS_proxy_detection_workaroundrX   Ú!install_HUP_not_supported_handlerÚinstall_worker_restart_handlerÚinstall_worker_term_handlerÚ install_worker_term_hard_handlerÚinstall_worker_int_handlerÚinstall_cry_handlerÚinstall_rdb_handler)rF   Úworkers     r*   rj   zWorker.install_platform_tweaks÷   si   € à�8‰8×ÒØ×1Ñ1Ô3ð �|Š|ð �x‰x× Ò ô 2°&Õ9ä.¨vÔ6Ü# FÔ+Ü(¨Ô0Ü" 6Ô*ÜÔÜÕr/   c                 óD   — t         j                  j                  dd«       y)z6See https://github.com/celery/celery/issues#issue/161.Úcelery_dummy_proxyÚset_by_celerydN)ÚosÚenvironÚ
setdefaultrb   s    r*   rÏ   z'Worker.macOS_proxy_detection_workaround  s   € ä
�
‰
×ÑÐ2Ð4DÕEr/   c                 ó”   — t        j                  d|› dt        j                  t        j                  «      › d�| j
                  ¬«      S )NÚcelerydr£   r¤   )rƒ   rB   )r	   Úset_mp_process_titleÚstrargvrU   ÚargvrB   )rF   rƒ   s     r*   ri   zWorker.set_process_status  s?   € Ü×-Ñ-ØØ�6˜œI×-Ñ-¬c¯h©hÓ7Ð8¸Ð:Ø—]‘]ô
ð 	
r/   )F)FNNNr_   )Tr1   zcelery.)T)Ú__name__r¹   Ú__qualname__Ú__doc__rH   r]   rc   re   rh   r…   r`   rg   r™   r~   r|   rj   rÏ   ri   Ú__classcell__)r\   s   @r*   r   r   T   sY   ø„ Ùó
7ð 37ØDHõ
ò Bô&òP
.ò:ó
òló
ò9ó((òTò,Fö
r/   r   ÚTERMÚWarmc                 ól   ‡ ‡‡‡‡— ˆˆˆˆˆ fd„}t        d‰› �«      |_        |t        j                  ‰<   y )Nc                  óN  •— t        «       5  ddlm} t        «       j                  dk(  rU‰r ‰‰«       t        d‰› d�t        j                  «       t        j                  j                  ‰j                  ‰‰‰¬«       t        |ddd	œ‰   ‰«       d d d «       y # 1 sw Y   y xY w)
Nr   ©ÚstateÚMainProcesszworker: z shutdown (MainProcess))r;   ÚsigÚhowÚexitcodeÚshould_stopÚshould_terminate)rè   ÚCold)r   Úcelery.workerrì   r   Ú_namer8   rU   r   r
   Úworker_shutting_downrD   rB   Úsetattr)Úargsrì   Úcallbackrð   rï   rî   r×   s     €€€€€r*   Ú_handle_requestz*_shutdown_handler.<locals>._handle_request  s’   ø€ Ü�_Ý+ÜÓ ×&Ñ&¨-Ò7ÙÙ˜VÔ$Ü˜8 C 5Ð(?Ð@Ä#Ç.Á.ÔQÜ×,Ñ,×1Ñ1Ø!Ÿ?™?°¸Ø%ð 2ô ô �E MØ$6ñ8Ø8;ñ=Ø>FôH÷ �_‰_ús   ŒBBÂB$Úworker_)rm   rã   r	   r
   )r×   rî   rï   rù   rð   rú   s   ````` r*   Ú_shutdown_handlerrü     s4   ü€ ÷Hð Hô  # W¨S¨E ?Ó3€OÔØ,„I×Ñ�cÒr/   ÚSIGQUITÚSIGTERMró   )rî   rï   rð   )rî   rï   c                   ó   — y r_   rM   )ÚaÚkws     r*   Ú<lambda>r  <  s   € ¸Dr/   c                 óR   — t        dt        j                  «       t        | d¬«       y )Nz>worker: Hitting Ctrl+C again will terminate all running tasks!ÚSIGINT©rî   )r8   rU   r   rÓ   )r×   s    r*   Ú	on_SIGINTr  ?  s   € ÜÐMÜ�^‰^ôä$ V°Ö:r/   r  )rî   rù   rð   c                   ó   — y r_   rM   )rø   rG   s     r*   rÔ   rÔ   K  s   € Ør/   c                  ó  — t        j                  t        j                  t        j                  t        j
                  g«       t        j                  t        j                  t        j                  gt        j                  z   «       y r_   )
r	   Úclose_open_fdsrU   Ú	__stdin__r   Ú
__stderr__rÛ   ÚexecvÚ
executablerâ   rM   r/   r*   Ú_reload_current_workerr  O  sL   € Ü×ÑÜ�‰”s—~‘~¤s§~¡~ðô ô ‡H�HŒS�^‰^œcŸn™nÐ-´·±Ñ8Õ9r/   c                 ó0   — d„ }|t         j                  |<   y )Nc                  óä   — t        d«       t        ddj                  t        j                  «      › d�t        j
                  «       ddl}|j                  t        «       ddl	m
} t        |_        y)z5Signal handler restarting the current python program.TzRestarting celery worker (rŒ   r¤   r   Nrë   )r   r8   rz   rU   râ   r   ÚatexitÚregisterr  rô   rì   r   rñ   )rø   r  rì   s      r*   Úrestart_worker_sig_handlerzBinstall_worker_restart_handler.<locals>.restart_worker_sig_handlerX  sN   € ä˜$ÔÜÐ-¨c¯h©h´s·x±xÓ.@Ð-AÀÐCÜ—‘ô	!ãØ�‰Ô.Ô/Ý'Ü!ˆÕr/   ©r	   r
   )r×   rî   r  s      r*   rÑ   rÑ   V  s   € ò"ð 8„I×Ñ�cÒr/   c                 ó>   — t         ry d„ }|t        j                  | <   y )Nc                  óh   — t        «       5  t        t        «       «       ddd«       y# 1 sw Y   yxY w)z=Signal handler logging the stack-trace of all active threads.N)r   r8   r   )rø   s    r*   Úcry_handlerz(install_cry_handler.<locals>.cry_handleri  s   € ä�_Ü”S“UŒO÷ �_‰_ús   ‹(¨1)Úis_pypyr	   r
   )rî   r  s     r*   rÕ   rÕ   d  s   € åØòð )„I×Ñ�cÒr/   c                 óp   — d„ }t         j                  j                  | «      r|t        j                  |<   y y )Nc                  ó’   — t        «       5  ddlm}m} | r| d   n |«       j                  } ||«       ddd«       y# 1 sw Y   yxY w)z=Signal handler setting a rdb breakpoint at the current frame.r   )Ú_frameÚ	set_tracer%   N)r   Úcelery.contrib.rdbr  r  Úf_back)rø   r  r  Úframes       r*   Úrdb_handlerz(install_rdb_handler.<locals>.rdb_handlers  s1   € ä�_ß<ñ  $�D˜’G©«¯©ˆEÙ�eÔ÷ �_‰_ús	   ‹)=½A)rÛ   rÜ   Úgetr	   r
   )Úenvvarrî   r   s      r*   rÖ   rÖ   p  s.   € òô 
‡z�z‡~�~�fÔØ!,Œ	×Ñ˜#Òð r/   c                 ó6   ‡— ˆfd„}|t         j                  ‰<   y )Nc                 óz   •— t        «       5  t        dj                  ‰¬«      «       d d d «       y # 1 sw Y   y xY w)NzH{sig} not supported: Restarting with {sig} is unstable on this platform!r  )r   r8   rŸ   )Úsignumr  rî   s     €r*   Úwarn_on_HUP_handlerz>install_HUP_not_supported_handler.<locals>.warn_on_HUP_handler�  s+   ø€ Ü�_Üð 2ß28±&¸S°&³/ôC÷ �_‰_ús   Œ1±:r  )r×   rî   r&  s    ` r*   rÐ   rÐ     s   ø€ ôCð 1„I×Ñ�cÒr/   )ÚSIGHUP)ÚSIGUSR1)ÚCELERY_RDBSIGÚSIGUSR2)Brå   r›   rÛ   r±   rÁ   rU   r   Ú	functoolsr   Úbilliard.commonr   Úbilliard.processr   Úkombu.utils.encodingr   Úceleryr   r	   r
   Ú
celery.appr   Úcelery.loaders.appr   Úcelery.platformsr   r   r   Úcelery.utilsr   r   Úcelery.utils.debugr   Úcelery.utils.importsr   Úcelery.utils.logr   r   r   Úcelery.utils.textr   rô   r   Ú__all__rã   rp   r'   Ú	is_jythonÚhasattrr  rÄ   r¼   rž   r.   r  r8   r   rü   rÒ   rÓ   r  rÔ   r  rÑ   rÕ   rÖ   rÐ   rM   r/   r*   Ú<module>r;     si  ðñó Û 	Û Û 
Ý Ý å )Ý ,Ý )ç 5Ñ 5Ý Ý (ß @Ñ @ß %Ý "Ý )ß IÑ IÝ 'Ý (à
€á	�HÓ	€Ø�L‰L×#Ñ# FÓ+€	Ù
�#Ð*Ó
+€ò€ð
€ð €ò3ð —N‘Nó *ôB
ˆ^ô B
ðJ #)¨fØ#¨eó-ð& �IÒÙ")Ø˜y¨f¸zô#Ññ #*Ø˜y¨fô#Ðñ Ù'.Ø˜y¨fØô(Ñ$ñ ,AðAÐØ(ò;ñ Ù!(Ø˜x°)Øô"Ñò
ò:ó8ó	)ð  /Ø%ó-ô1r/   