django-crontab实现服务端的定时任务的示例代码


Posted in Python onFebruary 17, 2020

 安装

pip install django-crontab

在Django项目中使用

settings.py

INSTALLED_APPS = (
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'django_crontab'
)

配置任务

CRONJOBS=(
  # 每一分钟执行一次你的定时函数
  ('*/ * * * *', 'appname.cron.test'),
  # 定时函数输出的内容到指定文件(如果该路径或文件不存在将会自动创建)
  ('0 0 1 * *', 'app名.定时函数所在文件名.定时函数名', '>输出文件路径和名称'),
  # 在12点10分执行命令
  ('10 12 * * *', 'django.core.management.call_command', ['要执行的命令']),
)

官方demo

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

  # format 1
  ('0  0 1 * *', 'myapp.cron.my_scheduled_job', '>> /tmp/scheduled_job.log'),

  # format 2
  ('0  0 1 * *', 'myapp.cron.other_scheduled_job', ['myapp']),
  ('0  0 * * 0', 'django.core.management.call_command', ['dumpdata', 'auth'], {'indent': 4}, '> /home/john/backups/last_sunday_auth_backup.json'),
]

上述demo参数说明

  • 参数1:定时 例如47 11 * * * 表示每天的11时47分执行
  • 参数2:方法的python模块路径,如果执行django-admin命令,则写django.core.management.call_command
  • 参数3:方法的位置参数列表(默认值:[]),如果执行django-admin命令,则填写所需执行的命令,例如我们在polls中已经定义过的closepoll
  • 参数4:方法的关键字参数的dict(默认值:{})
  • 参数5:执行log存放位置(即重定向到文件,默认:'‘)

其余参数说明

  • CRONTAB_LOCK_JOBS
  • CRONTAB_EXECUTABLE
  • CRONTAB_DJANGO_PROJECT_NAME
  • CRONTAB_DJANGO_MANAGE_PATH
  • CRONTAB_DJANGO_SETTINGS_MODULE
  • CRONTAB_PYTHON_EXECUTABLE
  • CRONTAB_COMMAND_PREFIX
  • CRONTAB_COMMAND_SUFFIX
  • CRONTAB_COMMENT
  • 具体使用方法参考官方使用文档 ,有很详细的说明。

在app中(与views.py同级)新建cron.py文件(文件名不限定)

def test():
  print('django_crontab test')

使用操作

  • python manage.py crontab add

    添加定时任务

  • python manage.py crontab remove 清除定时任务
  • python manage.py crontab show   显示定时任务

扩展知识

前5个(*)星号

M(分钟0-59)
H(小时0-23)
D(天1-31)
m(月1-12)
d(一星期0-6,0为星期天)

特殊符号

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

eg:

0 14 * * 1-5 周一到周五每天下午两点触发任务
0 10 * * 0,6 周六、周天早上十点触发任务
*/5 9-10 * * 1-5 周一到周五九点到十点每五分钟触发任务

日志打印

('*/ * * * *', 'appname.cron.test','> appname.txt'),

参考文档

django-crontab github地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python对url格式解析的方法
May 13 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Django异步任务之Celery的基本使用
Mar 23 Python
python五子棋游戏的设计与实现
Jun 18 Python
Django之模板层的实现代码
Sep 09 Python
Django框架创建项目的方法入门教程
Nov 04 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Python 在局部变量域中执行代码
Aug 07 Python
解决python3中os.popen()出错的问题
Nov 19 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 #Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 #Python
Python cookie的保存与读取、SSL讲解
Feb 17 #Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 #Python
Python交互环境下打印和输入函数的实例内容
Feb 16 #Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 #Python
基于python实现微信好友数据分析(简单)
Feb 16 #Python
You might like
php mysql索引问题
2008/06/07 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php-msf源码详解
2017/12/25 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
javascript this用法小结
2008/12/19 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
Django之PopUp的具体实现方法
2019/08/31 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python中的时区问题
2021/01/14 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
行政管理人员精品工作推荐信
2013/11/04 职场文书
售后求职信范文
2014/03/15 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
三好学生竞选稿
2015/11/21 职场文书