Django 定时器 django_crontab
前言:当需要项目在某一个固定时间自动执行某功能,即可以使用定时器这个功能
安装:django_crontab
pip3 install django_crontab
配置:需要在settings文件配件使用django_crontab,注意需要配置在app应用之前
INSTALLED_APPS = [
‘django_crontab’ # 定时器配置
]
创建项目需要的函数:自定义
注:common/timer.py 该位置为作者项目自定义存在定时器位置,如需要在定时器日志文件内打印输出内容,一定需要导入以下内容并重新定义标注输出。为按这个步骤操作日志内输出字符串内容会报错
#重新定义标准输出,未定义print中文会报错
import sys
import codecs
sys.stdout = codecs.getwriter(“utf-8”)(sys.stdout.detach())
触发定时器时,print内容将会在日志文件中打印
def update_VIP_status():
print(“定时器”)
在settings文件中配置定时器对应函数以及日志文件位置
#1.中文乱码
CRONTAB_COMMAND_PREFIX = ‘LANG_ALL=zh_cn.UTF-8’
#2.工作执行之后–直译
CRONTAB_COMMAND_SUFFIX = ‘2>&1’
#3.添加定时任务(时间分,时, 函数中的输出语句, 是输出在.log文件中的)
CRONJOBS = (
(‘30 17 * * *’, ‘common.timer.update_VIP_status’,
‘>> %s_log.log’ % os.path.join(BASE_DIR, ‘timer’))
)
启动时间
🌟 🌟 🌟 🌟 🌟 — 分,时,日,月,年
30 17 🌟 🌟 🌟 — 每天17:30执行一次定时函数
🌟/5 🌟 🌟 🌟 🌟 — 每5分钟执行一次定时函数
添加定时器,查看定时器,删除定时器
python3 manage.py crontab add #添加
python3 manage.py crontab show #查看
python3 manage.py crontab remove #删除
注意:在开发调试过程中,每一次在settings文件中更改定时器的配置时间需要重新添加一次才生效