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命令行参数解析模块optparse使用实例
Apr 13 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
通用的Django注册功能模块实现方法
Feb 05 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 Python
python自动化测试通过日志3分钟定位bug
Nov 20 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
javascript里的条件判断
2007/02/27 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
房地产开盘策划方案
2014/02/10 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
绿色环保倡议书
2015/04/28 职场文书
员工担保书范本
2015/09/22 职场文书
大学学生会竞选稿
2015/11/19 职场文书