Django之定时任务django-crontab
Django之定时任务django-crontab
- crontab
- 安装django-crontab
- 注册应用
- 定时时间格式
- 定时时间示例
- 设置定时任务
- @符号方法
- 解决crontab中文问题
- 管理定时任务
- 注意
crontab
Django可以使用第三方库如
django-crontab来实现定时任务的调度。该库允许使用类似于crontab文件格式的语法指定任务的执行时间。
GitHub地址:https://github.com/kraiz/django-crontab
安装django-crontab
pip install django-crontab
注册应用
在settings.py文件中注册django-crontab应用
INSTALLED_APPS = [ 'django_crontab', # 定时任务
]
定时时间格式
django-crontab使用Linux下常用的cron调度器进行任务调度。对于时间格式的指定,它遵循标准的crontab语法,分为五个字段,从左到右依次为:
* * * * *
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday=0) -------------d
| | | +------- month (1 - 12) -------------m
| | +--------- day of the month (1 - 31) -------------D
| +----------- hour (0 - 23) -------------H
+------------- min (0 - 59) -------------M
说明:
M: 分钟(0-59)每分钟用 * 或者 */1 表示
H:小时(0-23)(0表示0点)
D:天(1-31)
m: 月(1-12)
d: 一星期内的天(0~6,0为星期天)星号(*):所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作逗号(,):可以用逗号隔开的值指定一个列表范围,例如: 1,2,5,7,8,9中杠(-):可以用整数之间的中杠表示一个整数范围,例如: 2-6表示2,3,4,5,6正斜线(/):可以用正斜线指定时间的间隔频率,例如: 0-23/2表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次注意: 所有值都必须在相应的范围之内,否则视为无效。
定时时间示例
0 */1 * * * # 每1小时执行一次
0 10 * * * # 每天10点执行
30 19 * * * # 每天19点30分执行
0 10 * * 1 # 每周一10点执行
30 17 * * 5 # 每周五17点30分执行
0 10 1 10 * # 每年10月1日10点执行
0 5,17 * * * # 每天5:00和17:00执行任务
0 3 * * * # 表示每天凌晨三点执行
*/5 * * * * # 表示每隔5分钟执行一次
0 0 1,15 * * # 表示每月1日和15日午夜执行
30 8 1-7 * * # 表示每个月的前7天中,每日上午8:30执行
设置定时任务
定时任务分为三部分定义:任务时间、任务方法、任务日志,在settings.py文件配置:
CRONJOBS = [# 每1分钟执行一次# users:应用名,task为py文件名,task_job为文件中的函数('*/1 * * * *', 'apps.users.task.task_job', '>> ' + os.path.join(BASE_DIR, 'logs/crontab.log')),# 每隔5分钟运行一次('*/5 * * * *', 'apps.users.task.my_scheduled_job'),
]
@符号方法
django-crontab 支持使用 @ 符号来快速指定一些常见用法,例如:
@reboot:在系统启动时运行一次@yearly 或 @annually:每年1月1日 0:00 运行一次@monthly:每月1日 0:00 运行一次@weekly:每周日 0:00 运行一次@daily 或 @midnight:每天0:00 运行一次@hourly:每小时运行一次
@yearly 或 @annually:表示每年执行一次,相当于 0 0 1 1 *
CRONJOBS = [('@yearly', 'myapp.tasks.my_scheduled_job'),
]
@monthly:表示每月执行一次,相当于0 0 1 * *
CRONJOBS = [('@monthly', 'myapp.tasks.my_scheduled_job'),
]
@weekly:表示每周执行一次,相当于 0 0 * * 0
CRONJOBS = [('@weekly', 'myapp.tasks.my_scheduled_job'),
]
@daily 或 @midnight:表示每天午夜执行一次,相当于 0 0 * * *
CRONJOBS = [('@daily', 'myapp.tasks.my_scheduled_job'),
]
@hourly:表示每小时执行一次,相当于0 * * * *
CRONJOBS = [('@hourly', 'myapp.tasks.my_scheduled_job'),
]
解决crontab中文问题
在定时任务中,如果出现非英文字符,会出现字符异常错误
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
管理定时任务
1.执行定时任务
# 添加定时任务到系统中
python manage.py crontab add
2.取消定时任务
# 移除定时任务
python manage.py crontab remove
3.查询激活定时任务
# 显示已激活的定时任务
python manage.py crontab show
注意
1.crontab不适用于Windows平台。
2.django-crontab默认使用的是UTC时间,与当前系统时区可能不同。
可以在 settings.py 文件中指定
CRONTAB_TIMEZONE选项来设置时区,例如:
# 将时区设置为东八区(GMT+8)
CRONTAB_TIMEZONE = 'Asia/Shanghai'
相关文章:
Django之定时任务django-crontab
Django之定时任务django-crontab crontab安装django-crontab注册应用定时时间格式定时时间示例设置定时任务符号方法解决crontab中文问题管理定时任务注意 crontab Django可以使用第三方库如django-crontab来实现定时任务的调度。该库允许使用类似于crontab文件格式的语法指定任…...
linux常见命令
ls:列出当前目录下的所有文件和子目录 cd:切换当前工作目录,例如 cd /home/user 进入 /home/user 目录 pwd:显示当前工作目录的路径 mkdir:创建一个新目录,例如 mkdir newdir 创建一个名为 newdir 的目录…...
【14.HTML-移动端适配】
移动端适配 1 布局视口和视觉视口1.1 设置移动端布局视口宽度 2 移动端适配方案2.1 rem单位动态html的font-size;2.2 vw单位2.3 rem和vw对比2.4 flex的弹性布局 1 布局视口和视觉视口 1.1 设置移动端布局视口宽度 避免布局视口宽度默认980px带了的缩放问题,并且禁止…...
平衡二叉树旋转机制
概念 平衡二叉树的旋转机制是一种通过对树进行旋转操作来保持其平衡的方法。 分类 平衡二叉树的旋转机制包括两种基本类型的旋转:左旋和右旋,以及它们的组合。 左旋 左旋是将一个节点的右子节点旋转到它的位置上,同时将该节点移到其左侧&…...
深入浅出C++ ——C++11
文章目录 一、C11简介二、列表初始化二、声明四、范围for循环五、STL中的变化六、右值引用和移动语义1. 什么是左值?什么是左值引用?2. 左值引用与右值引用比较3. 右值引用使用场景和意义4. 完美转发 新的类功能默认成员函数类成员变量初始化defaultdele…...
智能座舱3.0阶段,看全球巨头如何打造更具“价值”的第三空间
面向中国这一全球最大的汽车电动化与智能化单一市场,作为全球第七大汽车技术供应商的FORVIA佛瑞亚集团开始全面发力。 在2023年上海国际车展上,FORVIA佛瑞亚携旗下佛吉亚与海拉一系列突破性技术和互动体验亮相,展示了对电气化与能源管理、安…...
【Linux】入门介绍
🌱博客主页:大寄一场. 🌱系列专栏:Linux 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 目录 前言 Linux背景介绍 1.发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 官网 4. 企业应用现状 5. 发行版…...
【Python】序列类型②-元组
文章目录 1.元组简介2.元组的定义2.1定义只有一个元素的元组 3.元组的下标访问4.元组的常用方法5.使用in判断是否存在元素6.多元赋值操作 1.元组简介 元组和列表一样可以存放多个,不同数据类型的元素 与列表最大的不同就是:列表是可变的,而元组不可变 2.元组的定义 元组的定义:…...
循环的数字
循环的数字 题目描述 你曾经因为看见一样的东西一遍又一遍地重复、循环而对电视节目感到厌烦么?好吧,虽然我并不关心电视节目的好坏,不过有时却也很像那样不断循环的数字。 让我们假定两个不同的正整数 ( n , m ) (n, m) (n,m) 是循环的&…...
MySQL查询之聚合函数查询
0. 数据源 student.sql文件。 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80016Source Host : localhost:3306Source Schema : testdbTarget Server Type : MySQLTa…...
普通2本,去过字节外包,到现在年薪25W+的测试开发,我的2年转行心酸经历...
个人简介 我是一个普通二本大学机械专业毕业,17年毕业,19年转行,目前做IT行业的软件测试已经有3年多,职位是高级测试工程师,坐标上海… 我想现在我也有一点资格谈论关于转行这个话题;希望你在决定转行之前…...
util.callbackify
util.callbackify(original) 将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数,例如将 (err, value) > ... 回调作为最后一个参数。 在回调函数中,第一个参数为拒绝的原因(如…...
解决使用CLIP模型时TypeError: Cannot handle this data type: (1, 1, 224, 224), |u1
想提供Huggingface的transformer库实现多模态模型CLIP的推断,结果报错 (myenv) rootd27d1ff1836c:/home/model_test# python3 CLIP.py ftfy or spacy is not installed using BERT BasicTokenizer instead of ftfy. Traceback (most recent call last): File “/hom…...
Mysql第二章 多表查询的操作
这里写自定义目录标题 一 外连接与内连接的概念sql99语法实现 默认是内连接sql99语法实现左外连接,把没有部门的员工也查出来sql99语法实现右外连接,把没有人的部门查出来sql99语法实现满外连接,mysql不支持这样写mysql中如果要实现满外连接的…...
ESP32-CAM:TinyML 图像分类——水果与蔬菜
目录 故事 硬件参数: 在 Arduino IDE 上安装 ESP32-Cam 使用 BLINK 测试电路板 测试无线网络 运行您的 Web 服务器 水果与蔬菜-图像分类 下载数据集 使用 Edge Impulse Studio 训练模型...
如何防止订单重复支付
想必大家对在线支付都不陌生,今天和大家聊聊如何防止订单重复支付。 看看订单支付流程 我们来看看,电商订单支付的简要流程: 订单钱包支付流程 从下单/计算开始: 下单/结算:这一步虽然不是直接的支付起点,但…...
不是那么快乐的五一
大家好,我是记得诚。 五一假期结束了,明天开始上班了。 这个假期没休息好,也没出去玩。 放假前一天,接到通知让加班。 第一天就去公司加班了,属实很难受,我心想如果别人有了出远门的安排,还…...
Maven命令和配置详解
Maven命令和配置详解 1. pom基本结构2. build基本结构3. Maven命令详解3.1 打包命令3.2 常用命令3.3 批量修改版本-父子pom4. Maven配置详解4.1 settings.xml4.2 项目内的maven工程结构Maven POM构建生命周期工程实践1. pom基本结构 <?xml versi...
P3029 [USACO11NOV]Cow Lineup S 双指针 单调队列
“五一”小长假来了趟上海,在倒数第二天终于有时间做了一会儿题目,A了之后过来写一篇题解 【问题描述】 农民约翰雇一个专业摄影师给他的部分牛拍照。由于约翰的牛有好多品种,他喜欢他的照片包含每个品种的至少一头牛。 约翰的牛都站在一条沿…...
数据结构与算法之链表: Leetcode 83. 删除排序链表中的重复元素 (Typescript版)
删除排序链表中的重复元素 https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ 描述 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 示例 1 输入:head [1,1,2] 输出&…...
告别硬编码路径:手把手教你用Go cgo优雅集成第三方C库(Windows/MinGW环境)
告别硬编码路径:用Go cgo优雅集成第三方C库的工程实践 在混合编程的世界里,Go与C/C的联姻既带来了性能红利,也伴随着路径管理的噩梦。当项目需要引用多个第三方库时,硬编码的绝对路径会让构建脚本变得脆弱不堪,团队协作…...
计算机毕业设计springboot基于的医院预约挂号系统 智慧医疗服务平台的设计与实现——以在线挂号预约为核心功能 SpringBoot框架下的医疗机构门诊预约管理系统开发
计算机毕业设计springboot基于的医院预约挂号系统w6r0k82u (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网技术的快速发展和普及,医疗领域也逐渐受到其影响…...
毕业设计模板:新手入门级全栈项目结构与避坑指南
很多同学在做毕业设计时,常常会遇到这样的场景:项目初期雄心勃勃,但写着写着就发现代码越来越乱,前后端耦合在一起,想加个新功能都无从下手,最后只能硬着头皮交一个“能跑就行”的“缝合怪”项目。今天&…...
3个关键步骤掌握BetaFlight黑匣子日志分析:从新手到专家
3个关键步骤掌握BetaFlight黑匣子日志分析:从新手到专家 【免费下载链接】blackbox-log-viewer Interactive log viewer for flight logs recorded with blackbox 项目地址: https://gitcode.com/gh_mirrors/bl/blackbox-log-viewer BetaFlight Blackbox Log…...
纺织抗菌,选对材料才关键
在纺织行业中,抗菌消臭性能是提升产品附加值的核心抓手,其中贴身衣物、家纺等贴身类产品,因长期接触人体或所处环境特性,细菌滋生、异味残留等问题尤为突出。DN128抗菌消臭剂作为高效无机消臭材料,可广泛用作面料及家纺…...
中国空间智能,梦想照进现实
2026年初,AI教母李飞飞的AI公司World Labs再次获得一笔10亿美元的投资,投资名单除了传统投资机构外,还不乏英伟达、Autodesk等行业巨头,这清晰地传递出市场信号:继AI大语言模型之后,空间智能已成为AI的下一…...
Umi-OCR插件技术深度解析:如何构建高效的文字识别工作流
Umi-OCR插件技术深度解析:如何构建高效的文字识别工作流 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins Umi-OCR插件库为文字识别任务提供了多样化的解决方案,涵盖了从本地CPU加…...
League Toolkit:重新定义英雄联盟游戏体验的智能辅助工具
League Toolkit:重新定义英雄联盟游戏体验的智能辅助工具 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 价值定位&am…...
3大核心功能让你的英雄联盟体验提升300%:League-Toolkit完全指南
3大核心功能让你的英雄联盟体验提升300%:League-Toolkit完全指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 引言…...
Midscene.js终极指南:3步让AI帮你自动操作任何界面
Midscene.js终极指南:3步让AI帮你自动操作任何界面 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene Midscene.js是一个AI驱动的跨平台自动化工具,让你用自然语言就能控…...
