我已经使用django crontab设置了cron作业。按照文档中的定义,我在cron.py中定义了一个测试作业,并在settings.py中将其定义为每隔1分钟运行一次。
<script src="https://www.amcharts.com/lib/4/core.js"></script>
<script src="https://www.amcharts.com/lib/4/charts.js"></script>
<div id="chart"></div>
我通过运行#cron.py
def test_cron_run():
print("\n\nHello World....!! ",timezone.now())
#settings.py
INSTALLED_APPS = [
'material.theme.cyan',
'material',
'material.admin',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'django_crontab',
]
CRONJOBS = [
('*/1 * * * *', 'myapp.cron.test_cron_run','>>'+os.path.join(BASE_DIR,'log/debug7.log')),
]
添加了cron作业。
另外,作业也已添加,因为我可以运行python3 manage.py crontab add
但是,我看不到任何日志文件正在生成。
有什么方法可以调试它,操作系统日志或其他内容?
答案 0 :(得分:0)
也许只是在cron作业结束时尝试添加2>&1
,它将错误输出重定向到标准输出。
答案 1 :(得分:0)
我有同样的问题。我只能通过包括日志文件的直接路径并提前创建它来使它工作
答案 2 :(得分:0)
结合此处给出的提示,这对我有用:
import os
CRONJOBS = [
('* * * * *', 'myapp.cron.test_cron_run', '>> ' + os.path.join(BASE_DIR,'log/debug7.log' + ' 2>&1 '))
]
附加说明
python3 manage.py crontab add
两次2>&1
,python 的错误消息在写入 STDERR 时不会被记录crontab -l
mail
阅读。