
    ]j?                         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mZ d dlZd dl	m
Z
 d dlmZ d dlmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ erd d
lmZ  ej@                          ejB                  dddd       ejB                  de"dd       ejB                  de"ed       ejB                  de"ed       ejB                  ddd       ejB                  de#ed       ejB                  de#ed       ejB                  de#ed        ejB                  d!e#ed"       ejB                  d#dd$       ejB                  d%d&dd'       ejB                  d(d)dd*       ejB                  d+d,d-       ejB                  d.d/       ejB                  d0d1dd2       ejB                  d3e#dd4       ejB                  d5e#dd6       ejB                  d7d8dd9       ejB                  d:d;d<d=>       ejH                  d?d@A      edB                                                                                                                                                           Z% ej@                          ejB                  dddd       ejB                  dCdDe"dEd       ejB                  d%d&dd'       ejB                  d(d)dd*       ejB                  de"ed       ejB                  de"ed       ejH                  d?d@A       ejB                  dFde#dGdH      edIe&fdJ                                                                      Z'y)K    N)TYPE_CHECKINGcast)ConnectionError)main)import_attributepass_cli_configread_config_filesetup_loghandlers_from_args)DEFAULT_JOB_MONITORING_INTERVALDEFAULT_LOGGING_DATE_FORMATDEFAULT_LOGGING_FORMAT!DEFAULT_MAINTENANCE_TASK_INTERVALDEFAULT_RESULT_TTLDEFAULT_WORKER_TTL)DefaultSerializer)is_suspended)
WorkerPool)
Serializerz--burstz-bTz/Run in burst mode (quit after all work is done))is_flaghelpz--logging_levelzSet logging level)typedefaultr   z--log-formatzSet the format of the logsz--date-formatzSet the date format of the logsz--namez-nzSpecify a different name)r   z--results-ttlz"Default results timeout to be usedz--worker-ttlzWorker timeout to be usedz--maintenance-intervalz1Maintenance task interval (in seconds) to be usedz--job-monitoring-intervalz*Default job monitoring interval to be usedz--disable-job-desc-loggingzTurn off description logging.z	--verbosez-vzShow more outputz--quietz-qzShow less outputz--exception-handlerzException handler(s) to use)r   multiplez--pidz;Write the process ID number to a file at the specified pathz#--disable-default-exception-handlerz-dz&Disable RQ's default exception handlerz
--max-jobsz!Maximum number of jobs to executez--max-idle-timez5Maximum seconds to stay alive without jobs to executez--with-schedulerz-szRun worker with schedulerz--dequeue-strategyz-dsr   z5Sets a custom stratey to dequeue from multiple queues)r   r   queues)nargsc                    | j                   rt        | j                         ni }|xs |j                  ddg      }|xs |j                  d      }|j                  d      }|rt        j                   j	                  |       |r^t        t        j                  j                  |      d      5 }|j                  t        t        j                                      ddd       | j                  j                  }|dv rC|dk(  rd	nd
}d| d| d}t        j                  |t                t#        j$                  |d       |dvr-t#        j$                  ddd       t'        j(                  d       t+        |	|
||       	 g }|D ]  }|j-                  t/        |              t1        | j2                        r,t#        j$                  dd       t'        j(                  d       |D cg c]+  }| j5                  || j2                  | j6                  |      - }}| j                  ||| j2                  |||||| j6                  | j4                  |xs d|| |      } |	rd}n|
rd}| j9                  ||||||||       y# 1 sw Y   xY wc c}w # t:        $ r4}!t        j<                  |!       t'        j(                  d       Y d}!~!yd}!~!wt>        $ r6}!t        j<                  |!d       t'        j(                  d       Y d}!~!yd}!~!ww xY w)zStarts an RQ worker.QUEUESr   NAMEDICT_CONFIGwN)RoundRobinWorkerRandomWorkerr#   randomround_robinz	WARNING: z( is deprecated. Use `--dequeue-strategy z
` instead.yellow)fg)r   r$   r%   zPERROR: Dequeue Strategy can only be one of `default`, `random` or `round_robin`.Tred)errr'      zBRQ is currently suspended, to resume job execution run "rq resume")
connection	job_class
serializer)namer+   default_worker_ttl
worker_ttldefault_result_ttlmaintenance_intervaljob_monitoring_intervalr,   queue_classexception_handlers!disable_default_exception_handlerlog_job_descriptionr-   DEBUGWARNING)burstlogging_leveldate_format
log_formatmax_jobsmax_idle_timewith_schedulerdequeue_strategy)exc_info) configr	   getlogging
dictConfigopenospath
expanduserwritestrgetpidworker_class__qualname__warningswarnDeprecationWarningclicksechosysexitr
   appendr   r   r+   r4   r,   workr   error	Exception)"
cli_configr:   r;   r.   results_ttlr0   r2   r3   disable_job_desc_loggingverbosequietexception_handlerpidr6   r>   r?   r@   r   r=   r<   r-   rA   optionssettingsdict_configfpworker_namestrategy_alternativemsgr5   hqueueworker_instancees"                                     8/root/env/lib/python3.12/site-packages/rq/cli/workers.pyworkerrn   "   s   x 7A6G6G
 1 12RH:x||Hyk:F'8<<'D,,}-K!!+.
"''$$S)3/ 	'2HHS%&	' ))66K::+6.+Hxm+&NOcNddnoc-.CH%CC^dhmr	
 	ZH6" 	;A%%&6q&9:	; 
--.KK\afgHHQK  	
  ""*"7"7:CWCWdn # 
 
 %11!,,)!*!5$; **"..19T.O$< <! 2 
$ #M%M'#!')- 	 		
q	' 	'6
N  a a$'sD   --I>?A(J '0JA&J >JJ 	L
*KL
,LL
z--logging-levelz-lINFOz--num-workersr*   zNumber of workers to startr:   c
                 f   | j                   rt        | j                         ni }|xs |j                  ddg      }t        ||||       |rt	        dt        |            }nt        }|rd}n|rd}t        || j                  |	|| j                  | j                        }|j                  ||       y)	zStarts a RQ worker poolr   r   r   r8   r9   )r+   num_workersr-   rN   r,   )r:   r;   N)rC   r	   rD   r
   r   r   r   r   r+   rN   r,   start)r[   r:   r;   r   r-   r^   r_   r=   r<   rq   rb   rc   queue_namespools                 rm   worker_poolru      s    0 7A6G6G
 1 12RH#Jx||Hyk'JKZH,(8(DE
&
 	!((,,&&D 	JJU-J8    )(rE   logging.configrH   rU   rP   typingr   r   rS   redis.exceptionsr   
rq.cli.clir   rq.cli.helpersr   r   r	   r
   rq.defaultsr   r   r   r   r   r   rq.serializersr   rq.suspensionr   rq.worker_poolr   r   commandoptionrL   intargumentrn   boolru    rv   rm   <module>r      s     	 
  &  ,    - & %) it2cdc4>QRn30FMijoC1LStuh#=>oC1CJnon30BIde	-	<	 	+	5	 *D?^_k44FGit2DE#*GRVWgYZ3T4Nvwld9\]c4>uv $;VW%9p #l  $ X w ^ x [ X F H ` f p ? v k S e Dl^ it2cdCFYZk44FGit2DEn30FMijoC1LStu#ot#q?[\'9'9  ] $ v k F H [ e '9rv   