【问题标题】:Crontab job not executing in django projectCrontab 作业未在 django 项目中执行
【发布时间】:2020-10-17 21:11:48
【问题描述】:

我正在使用 crontab 执行某些功能,但是当我运行服务器时,作业没有得到处理。当我使用命令 crontab show 时,它会向我显示作业,当我运行服务器时再次显示它未执行。我按照此文档https://pypi.org/project/django-crontab/ 并观看了 YT 教程,但没有任何效果。

crontab -l。显示:'*/1 * * * * /Users/nourelgeziry/.local/share/virtualenvs/Equal_Distribution_maintainance-M-bcKwQz/bin/python /Users/nourelgeziry/Desktop/MyProjects/Equal Distribution maintenance/EDMS/manage.py crontab 运行 bd84e5bec9ad4805b334e11fafec1b5c # django-cronjobs for EDMS'。

另外值得一提的是,我将 pipenv 用于虚拟环境。

如果有什么我可以提供的,请告诉我。提前谢谢你

【问题讨论】:

    标签: python django cron pipenv


    【解决方案1】:

    我之前也尝试过使用 Django crontabs,但我从未设法让它们工作。

    我所做的是创建可以使用例如“python3 manage.py send_emails”执行的自定义 Django 命令(如果 send_emails 是我的自定义命令的名称)。

    此处记录了如何创建自定义 Django 命令:https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/

    所以,这就是我所做的:

    1 - 创建自定义 django 命令

    2 - 创建一个 sh 文件,cd 到你的 Django 项目目录并运行 python3 manage.py name_of_your_command

    3 - 设置一个 cronjob 定期执行 sh 文件

    【讨论】:

    • 感谢您的帮助,我创建了自定义命令和 sh 文件,它工作正常。当涉及到 cron 作业时,如何让 cron 作业仅在 django 服务器运行时执行,因为我的自定义命令查询并从数据库中删除对象。
    猜你喜欢
    • 1970-01-01
    • 2020-06-19
    • 2015-12-04
    • 1970-01-01
    • 2018-06-14
    • 2014-04-04
    • 2011-07-26
    • 2016-01-28
    • 1970-01-01
    相关资源
    最近更新 更多