
    jg8                     ~    d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
  e j                  e      Z G d de      Zy)    N)apps)BaseCommand)get_jobs
print_jobs)setup_loggersignalcommandc                   L     e Zd ZdZg dZ fdZd Zd Zd Ze	d        Z
 xZS )Commandz Runs scheduled maintenance jobs.)minutelyquarter_hourlyhourlydailyweeklymonthlyyearlyc                     t         |   |       |j                  ddddj                  | j                        z         |j                  dddd	d
d       y )Nwhen?zoptions: %s, )nargshelpz--listz-l
store_true	list_jobsFz$List all jobs with their description)actiondestdefaultr   )superadd_argumentsadd_argumentjoinwhen_options)selfparser	__class__s     h/var/www/html/Stanley/venv/lib/python3.12/site-packages/django_extensions/management/commands/runjobs.pyr   zCommand.add_arguments   sc    f%#4+<+<!== 	 	
 	d<k F 	 	
    c                 j    t        | j                  ddj                  | j                               y )Nz Please specify: r   )printr   r    r!   )r"   s    r%   	usage_msgzCommand.usage_msg   s"    DIId>O>O4PQRr&   c                 *   |d   }t        |d      }t        |j                               D ]?  \  }}|||f   }|dkD  rt        j	                  d|||       	  |       j                          A y # t        $ r t        j                  d||       Y ew xY w)N	verbosityT)only_scheduled   zExecuting %s job: %s (app: %s)z"ERROR OCCURED IN JOB: %s (APP: %s))r   sortedkeysloggerinfoexecute	Exception	exception)r"   r   optionsr+   jobsapp_namejob_namejobs           r%   runjobszCommand.runjobs    s    K(	T2"("5Hh(+,C1}<dHhW[ #6  [  !ExQYZ[s   A// BBc                 F   ddl m} ddlm} |d   }|j                  D ]  }	 t        |dz   dddg        d t        j                         D        D ]=  }|dkD  r>d	j                  |j                  j                  d	      d
d       }t        d|d|       |dk(  r|j                  j                  ||       j|dk(  r|j                  j                  ||       |dk(  r|j                   j                  ||       |dk(  r|j"                  j                  ||       |dk(  r|j$                  j                  ||       |dk(  r|j&                  j                  ||       |dk(  s!|j(                  j                  ||       @ y
# t        $ r Y w xY w)z Run jobs from the signals r   )signals)settingsr+   z.management c              3   N   K   | ]  }|j                   s|j                     y w)N)models_module).0apps     r%   	<genexpr>z-Command.runjobs_by_signals.<locals>.<genexpr>9   s!     ]1G#3K\K\C%%1Gs   %%r-   .NzSending z job signal for: r   )senderrB   r   r   r   r   r   r   )django_extensions.managementr<   django.confr=   INSTALLED_APPS
__import__ImportErrorr   get_app_configsr    __name__rsplitr(   run_minutely_jobssendrun_quarter_hourly_jobsrun_hourly_jobsrun_daily_jobsrun_weekly_jobsrun_monthly_jobsrun_yearly_jobs)r"   r   r5   r<   r=   r+   r7   rB   s           r%   runjobs_by_signalszCommand.runjobs_by_signals,   s    	9(K(	 //H8m3RbTB 0 ^1E1E1G]C1}88CLL$7$7$<Sb$ABxHIz!))..cs.C))//44CS4I!'',,CS,A&&++3C+@!'',,CS,A"((--Sc-B!'',,CS,A# ^  s   F	F F c                     |d   }t        t        | j                         |d   rt        |ddd       y || j                  v r%| j                  ||       | j                  ||       y | j                          y )Nr   r   T)r,   	show_whenshow_appname)r   r0   stdoutr   r!   r:   rW   r)   )r"   argsr5   r   s       r%   handlezCommand.handleL   se    vVT[[);tDDtTT&&&LLw'##D'2NNr&   )rM   
__module____qualname__r   r!   r   r)   r:   rW   r   r]   __classcell__)r$   s   @r%   r
   r
      s9    -DcL	
S
[B@  r&   r
   )loggingdjango.appsr   django.core.management.baser   !django_extensions.management.jobsr   r   "django_extensions.management.utilsr   r   	getLoggerrM   r0   r
    r&   r%   <module>rh      s4      3 B J			8	$Kk Kr&   