如何手动创建一个 cron 作业到 运行 Django 脚本?

How to manually create a cron job to run a Django script?

我一直在尝试 运行 使用 Django 将一些代码作为 cron 作业。有一个 number of packages 可以帮助做到这一点,但他们似乎不支持最新的 Django 版本(4.0)。我想知道是否可以在我的 Django 文件夹结构中简单地编写一个 python 脚本,然后手动配置一个 cron 作业到 运行,而不是继续搜索包。比如设置:

*/30 * * * * python3.8 /var/djangoproject/crons/cron.py

这可能吗?这样做而不是使用为此制作的包是否有任何缺点或风险?我没有看到有人推荐这个,所以在实施之前我想看看这是否是个好主意。

事实证明这很容易,可以通过使用 custom django-admin commands 来实现。您基本上向项目添加一个 management/commands 文件夹,并向该文件夹添加一个具有特定结构的 python 脚本(请参阅文档)。假设您将文件命名为 cron.py。然后可以这样配置一个cron:

*/30 * * * * python3.8 /var/djangoproject/manage.py cron