千家信息网

django 中如何使用 django-crontab定时任务

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关django 中如何使用 django-crontab定时任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SpringB
千家信息网最后更新 2026年11月01日django 中如何使用 django-crontab定时任务

这篇文章将为大家详细讲解有关django 中如何使用 django-crontab定时任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

SpringBoot整合MybatisPlus!

pip install django-crontab

2.添加配置到 settings.py INSTALLED_APPS 中

INSTALLED_APPS = (    'django_crontab',    ...)

3.编写定时函数:

定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。

在django的app中新建一个myapp/cron.py文件,把需要定时执行的代码放进去

示例:

def my_scheduled_job():  pass

4.在 settings.py 中增加CRONJOBS配置

CRONJOBS = [    ('*/5 * * * *', 'myapp.cron.my_scheduled_job')]

也可以定义一些关键字参数,有2种格式:

格式1:

  • 要求:cron计时通常格式(有关更多示例,请参阅 Wikipedia 和 crontab.guru)

  • 要求:python模块路径下待执行定时任务

  • 可选:特定于定时任务的后缀(例如,将 out/err 重定向到文件,默认值为'')

示例:

CRONJOBS = [    ('*/1 * * * *', 'appname.test_crontab.test','>>/home/python/test_crontab.log')]

注意: >> 表示追加写入,> 表示覆盖写入。

格式2:

  • 要求:cron计时通常格式

  • 要求:python模块路径下待执行定时任务

  • 可选:方法的位置参数列表(默认值:[])

  • 可选:方法的关键字参数的dict(默认值:{})

  • 可选:特定于定时任务的后缀(例如,将 out/err 重定向到文件,默认值为'')

示例:

CRONJOBS = [    ('*/5 * * * *', 'myapp.cron.other_scheduled_job', ['arg1', 'arg2'], {'verbose': 0}),    ('0   4 * * *', 'django.core.management.call_command', ['clearsessions']),    ]

对于熟悉 Linux 中定时任务crontab 的同学可能对上面第一个参数的语法很亲切。上面表示每隔1分钟执行一次代码。

Linux 中的定时任务crontab的语法如下:

*  *  *  *  * command分钟(0-59) 小时(0-23) 每个月的哪一天(1-31) 月份(1-12) 周几(0-6) shell脚本或者命令

有几个特殊的符号:

* 代表所有的取值范围的数字/ 代表每的意思,*/5就是每5个单位- 代表从某个数字到某个数字, 分开几个离散的数字

示例:

每两个小时    0 */2 * * *晚上11点到早上8点之间每两个小时,早上8点    0 23-7,8 * * *每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点    0 11 4 * 1-31月1日早上4点    0 4 1 1 *

0 6 * * * commands >> /tmp/test.log # 每天早上6点执行, 并将信息追加到test.log中0 */2 * * * commands # 每隔2小时执行一次

有兴趣的小伙伴可以深入研究下 Linux 的crontab定时任务。如果不了解和不熟悉可以想看: cron语法格式学习

5.添加并启动定时任务

#添加并启动定时任务python manage.py crontab add

其它命令:

#显示当前的定时任务python manage.py crontab show#删除所有定时任务python manage.py crontab remove

一些问题

如果配置成这样:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))CRONJOBS = [('0 7 * * 1-5', 'api.cron.email_to_late_docs', '>> {}'.format(BASE_DIR + '/logs/log_{:%d_%m_%Y}.log'.format(time.now()))),('0 7 * * 1-5', 'api.cron.email_ten_days_before', '>> {}'.format(BASE_DIR + 'logs/log_{:%d_%m_%Y}.log'.format(time.now())))]

关于django 中如何使用 django-crontab定时任务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

任务 格式 示例 参数 小时 数字 代表 命令 文件 更多 礼拜 语法 配置 两个 代码 关键 关键字 内容 函数 后缀 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 没上市的科技互联网公司 互联网金融 科技金融 善班互联网科技有限公司 电子科技大学互联网 互联网女皇 腾讯科技 猫创互联网科技 滨湖区互联网智能科技产品供应 互联网公司会议桌创意科技软装饰 银川新华互联网科技学校地址 互联网实体化科技化 宁波青枫互联网科技有限公司 南山科技园互联网公司有哪些 互联网和黑科技的看法 厦门千工互联网科技有限公司 崇明区互联网教育科技售后服务 苏州铭阳互联网科技有限公司 互联网科技数字货币 上海万顺科技互联网有限公司招聘 互联网科技创业有什么好项目 耶加雪菲 互联网科技产业 重庆互联网络科技 阿里互联网科技公司 玉溪互联网科技怎么选 佛山市拉法互联网科技有限公司 互联网科技圈年度人物 互联网时代高科技布局 北京瑞云互联网科技有限公司 互联网大会出现的黑科技
0