
    (ph              	          S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr   \R"                  " 5         S S	KJrJrJrJrJr  S S
KJr  S SKJrJr  S SK J!r!  S SK"J#r#J$r$   S SK%r% S SKr\RP                  4S\S\S\S\)4S jjr*S r+g! \	R$                  R&                   a    S SKr\R(                  " 5          Nf = f! \& a    Sr% Nbf = f! \' a    Sr Nkf = f)    N)Value)current_process)Queue)core)apps)timezone)gettext_lazy)Conferror_reporterloggerresourcesetproctitle)TimeoutException)
post_spawnpre_execute)TimeoutHandler)close_old_django_connectionsget_func_repr
task_queueresult_queuetimertimeoutc                 P   [        5       R                  n[        R                  " [	        S5      U[        5       R
                  S.-  5        [        R                  " SUS9  [        (       a  [        R                  " SU S35        SnUc  S	n[        U R                  S
5       GH-  nSnS	Ul        US-  nUS   n[        U5      n	US   n
[	        S5      UU	U
S.-  nSU;   a  USUS    S3-  n[        R                  " U5        [        (       a4  SU SU
 SU	 S3nSU;   a  USUS    S3-  n[        R                  " U5        [        U5      (       d  [        R                  " U5      n[!        5         UR#                  SU5      n[$        R                  " SXS9  Xl        UR                  S	:w  a  U=R                  S-  sl        Sn Uc  ['        SUS    S35      e[)        U5         U" US   0 US   D6nSSS5        WS4nUR9                  5          US   US!'   US   US"'   [:        R<                  " 5       US#'   UR?                  U5        U(       a  SUl         SSS5          OoS	Ul        [        (       a  [        R                  " SU S35        U[@        RB                  :X  d  [E        5       (       a  S$Ul         SSS5          O SSS5        GM0     [        R                  " [	        S%5      S&U0-  5        g! , (       d  f       GN
= f! [*        [,        4 av  n[/        U[,        5      (       a  SnU S[0        R2                  " 5        3S4n[4        (       a  [4        R6                  " 5         UR                  S S5      (       a  e  SnAGNSnAff = f! , (       d  f       GM  = f)'a  
Takes a task from the task queue, tries to execute it and puts the result back in
the result queue
:param timeout: number of seconds wait for a worker to finish.
:type task_queue: multiprocessing.Queue
:type result_queue: multiprocessing.Queue
:type timer: multiprocessing.Value
z&%(proc_name)s ready for work at %(id)s)	proc_nameiddjango_q)senderr   z	qcluster z idler   NSTOP   funcnamez6%(proc_name)s processing %(task_name)s '%(func_name)s')r   	func_name	task_namegroupz []z processing z ''r   )r   r!   task   Fz	Function z is not definedargskwargsTz : syncresultsuccessstoppedz %(proc_name)s stopped doing workr   )#r   r"   r   info_pidr   sendr   itergetvaluer   callablepydoclocater   popr   
ValueErrorr   	Exceptionr   
isinstance	traceback
format_excr   reportget_lockr   nowputr
   RECYCLE	rss_check)r   r   r   r   r   
task_countr(   r-   fr#   r$   	task_desc
proc_titletimer_valuetimeout_errorreses                    B/var/www/html/venv/lib/python3.13/site-packages/django_q/worker.pyworkerrP   $   s\     !&&I
KK	
23!):)>)>
?	@ OO:;|!!Ii[">?JZ^^V,a
L "!$	L	NO"""S
 
	
 d?2d7m_A..II<$YK|I;bSTUJ$4=/33
%%j1 {{QA$&hhy'2
>!;;"KK1K	y 9T&\N/!JKK,f8h8 -4[F ^^#AYDN$QiDO&llnDOT"  EK|))Ii[*FGT\\)Y[[ #  .9 o -R KK45i8PPQ= -, +, 	!-.. $3y33567?F~%%'xx&& '	 sE    L(K:7LA	N&AN:
L		LNA+NN
N%	c                  Z   [         R                  (       a  [        (       a?  [        R                  " [        R                  5      R
                  [         R                  :  $ [        (       aA  [        R                  " 5       R                  5       R                  [         R                  S-  :  $ g)Ni   F)
r
   MAX_RSSr   	getrusageRUSAGE_SELF	ru_maxrsspsutilProcessmemory_inforss     rO   rF   rF      sf    ||8%%h&:&:;EEUUV>>#//1559LLLr[   ),r9   r?   multiprocessingr   multiprocessing.processr   multiprocessing.queuesr   djangor   django.apps.registryr   django.utilsr   django.utils.translationr	   r2   check_apps_ready
exceptionsAppRegistryNotReadysetupdjango_q.confr
   r   r   r   r   django_q.exceptionsr   django_q.signalsr   r   django_q.timeoutr   django_q.utilsr   r   rV   ImportErrorModuleNotFoundErrorTIMEOUTintrP   rF   rZ   r[   rO   <module>rp      s      ! 3 (  % ! 6 O N 0 4 + F JN`R`R%*`R38`RCF`RFs ** 
LLN  F
  Ls5   B 0C 5C /C	C	CCC%$C%