2017-09-24 239 views
0

当我运行python manage.py runcrons时,cron作业成功执行(打印'Executed')。但它不会自动执行。正如我在课堂上所说的那样,它应该每分钟执行一次。下面的代码:django-cron任务不会自动执行

settings.py

CRON_CLASSES = [ 
    "app.views.MyCronJob" 
] 

app.views

class MyCronJob(CronJobBase): 
    RUN_EVERY_MINS = 1 

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS) 
    code = 'my_app.my_cron_job' # not sure what this is supposed to be? 

    def do(self): 
     print('Executed') 

任何想法?

回答

0

你还需要设置为cron中的crontab条目:

> crontab -e 
*/5 * * * * source /home/ubuntu/.bashrc && source /home/ubuntu/work/your-project/bin/activate && python /home/ubuntu/work/your-project/src/manage.py runcrons > /home/ubuntu/cronjob.log 

official documentation

+0

我运行Mac OSX版Ubuntu的不这对我来说会不同吗?所以我的桌面项目是'project/bin/activate'。 – Zorgan

+0

我想你将不得不安装和配置提供cron(fcron,cronie等)的软件包之一并配置 –

0

+1采取AYUSH的答案。这对我有效。

crontab -e命令

这将打开编辑器,复制粘贴在底部以下行并保存&密切。

*/5 * * * *源/home/ubuntu/.bashrc & &源/家/ Ubuntu的/工作/你的项目/斌/激活& &蟒蛇的/ home/Ubuntu的/工作/你的 - 项目/ src目录/ manage.py runcrons> /home/ubuntu/cronjob.log

除此之外尝试在你的Django项目目录重新运行这些:

python manage.py runcrons --force 
service cron start