# 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')