0

当我运行python manage.py runcrons时,cron 作业成功执行(打印“已执行”)。但它不会自动执行。正如我在课堂上所说的那样,它应该每分钟执行一次。这是代码:

设置.py

CRON_CLASSES = [
    "app.views.MyCronJob"
]

应用程序视图

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

任何想法?

4

2 回答 2

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

取自官方文档

于 2017-09-24T00:10:16.823 回答
0

+1 为 Ayush 的回答。这对我有用。

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

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

python manage.py runcrons --force
service cron start
于 2017-12-22T12:29:29.380 回答