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中正则表达式的用法实例汇总
Aug 18 Python
Python中集合类型(set)学习小结
Jan 28 Python
Python中的面向对象编程详解(下)
Apr 13 Python
Python字符串格式化
Jun 15 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
python os模块常用的29种方法使用详解
Jun 02 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
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
PHP实现百度人脸识别
2019/05/06 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
详解vue路由
2020/08/05 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Django实现快速分页的方法实例
2017/10/22 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Python中一些深不见底的“坑”
2019/06/12 Python
python的sorted用法详解
2019/06/25 Python
Django中URL的参数传递的实现
2019/08/04 Python
python是否适合网页编程详解
2019/10/04 Python
python获取引用对象的个数方式
2019/12/20 Python
python实现简单学生信息管理系统
2020/04/09 Python
Python如何发送与接收大型数组
2020/08/07 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
积极分子思想汇报
2014/01/04 职场文书
三个儿子教学反思
2014/02/03 职场文书
合作意向书格式及范文
2014/03/31 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android