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编写一个简单的Lisp解释器的教程
Apr 03 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 Python
python简单实现刷新智联简历
Mar 30 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
对python:print打印时加u的含义详解
Dec 15 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python中如何设置代码自动提示
Jul 15 Python
python如何设置静态变量
Sep 07 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的curl实现get和post的代码
2008/08/23 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
理解javascript对象继承
2016/04/17 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
教师求职信范文分享
2013/12/27 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
慰问信范文
2015/02/14 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
详解nginx进程锁的实现
2021/06/14 Servers