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用ConfigObj读写配置文件的实现代码
Mar 04 Python
python pickle 和 shelve模块的用法
Sep 16 Python
python魔法方法-属性访问控制详解
Jul 25 Python
Python 3中的yield from语法详解
Jan 18 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
快速解决安装python没有scripts文件夹的问题
Apr 03 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
Python坐标线性插值应用实现
Nov 13 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
python中matplotlib实现随鼠标滑动自动标注代码
Apr 23 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
python进阶教程之词典、字典、dict
2014/08/29 Python
Python去除列表中重复元素的方法
2015/03/20 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
python实现对输入的密文加密
2019/03/20 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
增值税发票丢失证明
2015/06/19 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript
Nginx配置Https安全认证的实现
2021/05/26 Servers
Python 中的 copy()和deepcopy()
2021/11/07 Python