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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
详解Python中内置的NotImplemented类型的用法
Mar 31 Python
python使用socket连接远程服务器的方法
Apr 29 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Atom的python插件和常用插件说明
Jul 08 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
简单了解python元组tuple相关原理
Dec 02 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
简单了解Python多态与属性运行原理
Jun 15 Python
pytorch查看模型weight与grad方式
Jun 24 Python
pytorch Dropout过拟合的操作
May 27 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
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
Python部署web开发程序的几种方法
2017/05/05 Python
python 上下文管理器使用方法小结
2017/10/10 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python函数装饰器实现方法详解
2018/12/22 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
计算机专业个人简短的自我评价
2013/10/23 职场文书
自荐信如何“自荐”
2013/10/24 职场文书
机电一体化大学生求职信
2013/11/08 职场文书
初中政治教学反思
2014/01/17 职场文书
好家长事迹材料
2014/01/23 职场文书
工程质量承诺书范文
2014/03/27 职场文书
1亿有多大教学反思
2014/05/01 职场文书
股东授权委托书范本
2014/09/13 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
爱的教育读书笔记
2015/06/26 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
Java的Object类的九种方法
2022/04/13 Java/Android