我在 django 中使用 crontab,我的操作系统是 ubuntu
def my_scheduled_job():
print("1")
这是 settings.py 中的代码
CRONJOBS = [
('*/1 * * * *', 'stocks.cron.my_scheduled_job')
]
如果我跑
python3 manage.py crontab 运行#带哈希
它运行该函数并打印它,但是当我运行服务器时它不运行。我该怎么办。
这是我在 crontab 中的代码
crontab -e
*/1 * * * * /usr/bin/python3 /home/stockstelegraph/manage.py crontab run 6b918d2422a9f4fce735a3383cee6485 # django-cronjobs
答案1
您的代码确实有效。您可能认为print("1")
应该出现在 stdout 中?所以它不能这样工作,因为 cron 不使用stdour
和stderr
作为其输出。要查看实际结果,您应该将路径指向CRONJOBS
列表中的某个日志文件:只需将其'>> /path/to/log/file.log'
作为最后一个参数即可,例如:
('*/1 * * * *', 'stocks.cron.my_scheduled_job', '>> /path/to/log/file.log')