无法自动执行 crontab

Unable to automate crontab

我有一个 django 项目,它利用函数 notify_about_changes 以 table 格式向用户发送有关上周对象历史记录的电子邮件。通过

手动发生时它工作正常
$python manage.py shell

为了使工作自动化,我研究了 Django-Kronos 并按如下方式配置了 crontab:-

$sudo crontab -e
*1 * * * * pathto/venv/python3.4 pathto/manage.py notify_about_changes
$sudo cron restart

问题:- crontab 无法正常工作,它会引发问题,例如我的 ip 地址响应失败。

这可能不会直接回答您的问题,但我也很难在 Django 中使用 cron,然后我转而使用 APScheduler,与 cron 相比,它更灵活。它有一个 cron 风格的调度程序:

Cronschedule | APScheduler

croncelery 等类似模块相比,APScheduler 的主要优势在于无需重新启动调度程序即可动态更改计划。

当您的应用程序被 Cron 调用时,它将 "capture" 并处理您的应用程序向系统生成的所有信息。

我不太清楚您使用的是哪个模块,但我相信以下其中一项可以解决您的问题:

1- 配置 Cron 以将日志文件发送到特定文件。

2- 将 sys.stderr 和 sys.stdout 更改为特定配置,如终端、shell、-app 等

3- 配置日志记录模块以更正所有信息。

这可能是一个拼写错误,但您的 crontab 看起来有一个错误的初始星号。应该是:

1 * * * * pathto/venv/python3.4 pathto/manage.py notify_about_changes

这将 运行 每小时过一分钟的脚本,这可能不是您想要的每周任务。相反,您可能想尝试:

0 0 * * 0 pathto/venv/python3.4 pathto/manage.py notify_about_changes

这将 运行 你每周日午夜的工作。