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 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
python修改注册表终止360进程实例
Oct 13 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 Python
python简单的函数定义和用法实例
May 07 Python
解读! Python在人工智能中的作用
Nov 14 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
Python简单定义与使用二叉树示例
May 11 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
Python中的pprint模块
Nov 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
php读取xml实例代码
2010/01/28 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
js实现楼层导航功能
2017/02/23 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
django删除表重建的实现方法
2019/08/28 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
食堂个人先进事迹
2014/01/22 职场文书
中国入世承诺
2014/04/01 职场文书
实习协议书范本
2014/04/22 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers