django-crontab实现服务端的定时任务的示例代码
作者:studytime 发布时间:2021-02-13 05:15:06
安装
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地址
来源:https://www.studytime.xin/python/2020/02/11/python-django-crontab.html
猜你喜欢
- 在平时开发中我们经常会用到 Webpack这个时下最流行的前端打包工具。它打包开发代码,输出能在各种浏览器运行的代码,提升了开发至发布过程的
- 本文实例为大家分享了python实现网络五子棋的具体代码,供大家参考,具体内容如下服务器端:import osimport socketim
- 介绍也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为pivot_table。虽然pivot_
- 如下所示:import matplotlib.pyplot as pltimport numpy as npfrom scipy impor
- ECharts是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的Canvas类
- 在安装完数据库后,由于自己不小心直接关闭了安装窗口,或者长时间没有使用root用户登录系统,导致忘记了root密码,这时就需要重置MySQL
- pip的安装,以及使用pip安装包的方法,记录如下,分享给大家:—–安装python的时候勾选了下载pip,不知道为什么没下载。然后就偷懒想
- 一、创建excel代码备注:封装好了(可直接调用)"""-*- coding:utf-8 -*-@Time :
- 这篇文章主要介绍了基于python实现蓝牙通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- win10系统本地安装MySQL8.0.20,亲测可用,也是参考了其他大神的操作1. 下载Mysql ,官网下载地址:MySQL官网:链接直
- 问题描述MySQL函数或者存储过程中使用group_concat()函数导致数据字符过长而报错CREATE DEFINER=`root`@`
- 前言:情人节、三八女神节、520、七夕节、圣诞节、元旦、生日、新年、各种纪念日……这些节日,对于
- 问题:在论坛发表回复时出现“The table is full”的提示,字面意义上是数据表已满的意思。因为很少有开发者遭遇单一表超过4G的情
- 在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变
- 注:我的运行环境是widnows xp professional + MySQL5.0 一, 创建用户: 命令:CREATE USER
- PDO::inTransactionPDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, B
- 前言:这里再回顾一下函数的local空间,首先我们往global空间添加一个键值对相当于定义一个全局变量,那么如果往函数的local空间里面
- 最近准备做一个关于scrapy框架的实战,爬取腾讯社招信息并存储,这篇博客记录一下创建项目的步骤pycharm是无法创建一个scrapy项目
- 1. 直方图概述(1)基本概念直方图就是对图像的另外一种解释,它描述了整幅图像的灰度分布。直方图的 x 轴代表灰度值(0~255),y 轴代
- PHP bin2hex() 函数实例把 "Hello World!" 转换为十六进制值:<?php $str =