
    AHj                        d dl Z 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 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	j8                          ej:                  d	d
dd       ej:                  dedd       ej:                  deed       ej:                  deed       ej:                  ddd       ej:                  deed       ej:                  deed       ej:                  deed       ej:                  deed        ej:                  d!dd"       ej:                  d#d$dd%       ej:                  d&d'dd(       ej:                  d)d*d+       ej:                  d,d-       ej:                  d.d/dd0       ej:                  d1edd2       ej:                  d3edd4       ej:                  d5d6dd7       ej:                  d8d9d:d;<       ej@                  d=d>?      ed@                                                                                                                                                           Z! e	j8                          ej:                  d	d
dd       ej:                  dAdBedCd       ej:                  d#d$dd%       ej:                  d&d'dd(       ej:                  deed       ej:                  deed       ej@                  d=d>?       ej:                  dDdedEdF      edGe"fdH                                                                      Z#y)I    N)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)resolve_serializer)is_suspended)
WorkerPoolz--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(   r1   r)   workr   error	Exception)"
cli_configr7   r8   r+   results_ttlr-   r/   r0   disable_job_desc_loggingverbosequietexception_handlerpidr3   r;   r<   r=   r   r:   r9   r*   r>   optionssettingsdict_configfpworker_namestrategy_alternativemsgr2   hqueueworker_instancees"                                     F/root/tools/cai/cai_env/lib/python3.12/site-packages/rq/cli/workers.pyworkerrk      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 startr7   c
                 @   | j                   rt        | j                         ni }|xs |j                  ddg      }t        ||||       t	        |      }|rd}n|rd}t        || j                  |	|| j                  | j                        }|j                  ||       y)zStarts a RQ worker poolr   r   r5   r6   )r(   num_workersr*   rK   r)   )r7   r8   N)
r@   r   rA   r   r   r   r(   rK   r)   start)rX   r7   r8   r   r*   r[   r\   r:   r9   rn   r_   r`   queue_namespools                 rj   worker_poolrr      s    0 7A6G6G
 1 12RH#Jx||Hyk'JKZH#J/J 	!((,,&&D 	JJU-J8    )$rB   logging.configrE   rR   rM   rP   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   commandoptionrI   intargumentrk   boolrr    rs   rj   <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 $9rs   