3
g8                 @   s^   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 deZdS )    N)apps)BaseCommand)get_jobs
print_jobs)setup_loggersignalcommandc                   sV   e Zd ZdZdddddddgZ fd	d
Zdd Zdd Zdd Ze	dd Z
  ZS )Commandz Runs scheduled maintenance jobs.minutelyquarter_hourlyhourlydailyweeklymonthlyyearlyc                sB   t  j| |jddddj| j d |jdddd	d
dd d S )Nwhen?zoptions: %sz, )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__ k/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django_extensions/management/commands/runjobs.pyr      s    zCommand.add_argumentsc             C   s   t d| jdj| jf  d S )Nz%s Please specify: %sz, )printr   r   r   )r   r!   r!   r"   	usage_msg   s    zCommand.usage_msgc             C   s   |d }t |dd}xnt|j D ]^\}}|||f }|dkrNtjd||| y| j  W q" tk
r~   tjd|| Y q"X q"W d S )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_nameZjob_nameZjobr!   r!   r"   runjobs    s    zCommand.runjobsc             C   sl  ddl m} ddlm} |d }x<|jD ]2}yt|d dddg W q( tk
rX   Y q(X q(W xdd tj D D ]}|d	krd
j	|j
jd
dd }td||f  |dkr|jj||d qt|dkr|jj||d qt|dkr|jj||d qt|dkr|jj||d qt|dkr0|jj||d qt|dkrL|jj||d qt|dkrt|jj||d qtW dS )z Run jobs from the signals r   )signals)settingsr%   z.management c             s   s   | ]}|j r|j V  qd S )N)Zmodels_module).0appr!   r!   r"   	<genexpr>9   s    z-Command.runjobs_by_signals.<locals>.<genexpr>r'   .NzSending %s job signal for: %sr	   )Zsenderr7   r
   r   r   r   r   r   )Zdjango_extensions.managementr3   Zdjango.confr4   ZINSTALLED_APPS
__import__ImportErrorr   Zget_app_configsr   __name__rsplitr#   Zrun_minutely_jobssendZrun_quarter_hourly_jobsZrun_hourly_jobsZrun_daily_jobsZrun_weekly_jobsZrun_monthly_jobsZrun_yearly_jobs)r   r   r/   r3   r4   r%   r1   r7   r!   r!   r"   runjobs_by_signals,   s4    



zCommand.runjobs_by_signalsc             O   s^   |d }t t| j |d r.t|dddd n,|| jkrR| j|| | j|| n| j  d S )Nr   r   T)r&   Z	show_whenZshow_appname)r   r*   stdoutr   r   r2   r@   r$   )r   argsr/   r   r!   r!   r"   handleL   s    
zCommand.handle)r=   
__module____qualname__r   r   r   r$   r2   r@   r   rC   __classcell__r!   r!   )r    r"   r      s    r   )loggingZdjango.appsr   Zdjango.core.management.baser   Z!django_extensions.management.jobsr   r   Z"django_extensions.management.utilsr   r   	getLoggerr=   r*   r   r!   r!   r!   r"   <module>   s   
