Exemplo n.º 1
0
# Allows you to regularly run django commands: manage.py task
class DjangoCommandJob(Job):

  def task_template(self):
    # return 'source ~/.bashrc && workon %s && cd %s && python manage.py {task} >> %s' % (VIRTUALENV, MANAGE_ROOT, LOG_PATH)
    return 'cd %s && {environment} %s manage.py {task} >> {output}' % (MANAGE_ROOT, PYTHON_EXECUTABLE)

cron = Plan(environment=ENVIRONMENT, output=LOG_PATH, user=CRON_USER)

# This tells crontab to email admins if any cron job failed.
cron.env('MAILTO', ADMIN_EMAIL)

#################################### Job definitions ###################################

job = DjangoJob(task='task.py', every='1.day', at='02:00')
cron.job(job)

for day in ('sunday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'):
    absentee_report_job = DjangoCommandJob(
        task='send_absentee_roster_emails',
        every=day,
        at='08:00'
    )
    cron.job(absentee_report_job)
# cron.command('env > ~/cronenv', every='1.minute')
# cron.command('ls /tmp', every='1.day', at='12:00')
# cron.command('pwd', every='2.month')
# cron.command('pwd', every='1.minute')
#cron.command('echo $(pwd) + $(date) >> ' + os.path.join(SITE_ROOT, 'cron.log'), every='1.day', at='16:39')
# cron.command('echo "ray" + $(date) >>', every='1.minute')