django 定时任务的创建

方法1:django-crontab

定时任务crontab任务的创建

pip install django-crontab # 安装依赖

复制代码
'django_crontab'  # 注册中间件

定时时间的基本格式:

* * * * *

分 时 日 月 周 命令

M: minute 每分钟 用 * 或者 */1

H: hour

D: day

m: month

d: 一星期内的天

主要分为三部分应用定时: 任务时间、任务方法、任务日志

配置定时任务

复制代码
# django-crontab
CRONJOBS = [
# 每1分钟执行一次crontab_test函数
('*/1 * * * * ','app.view.crontab_test','>>'+os.path.join(BASE_DIR,'test.log'))
]

若出现非英文问题:

复制代码
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8' # 解决中文问题

常用命令

复制代码
创建任务命令     python manage.py crontab add
展示任务命令     python manage.py crontab show
取消任务命令     python manage.py crontab remove

方法2:celery

python 复制代码
# tasks
from celery_task import send_email
from datetime import datetime
ctime = datetime.now()
# 默认用utc时间
utc_ctime = datetime.utcfromtimestamp(ctime.timestamp())
from datetime import timedelta
time_delay = timedelta(seconds=10)  # 当时时间10s后执行任务

 
# setting
cel.conf.beat_schedule = {
    # 名字随意命名
    'xxx': {
        # 执行定时函数
        'task': 'celery_tasks.task01.send_email',
        # 定时每月10-15号,周一至周五,早上8点30分发送邮件
        "schedule": crontab(minute='30', hour='8', day_of_week='1-5', day_of_month='10-15')
        'schedule': timedelta(seconds=6), # 每6s执行一次
        # 传递参数
        'args': ('xxx',)
    },
} 

celery 启动命令

周期性执行任务单元,要注意先启动beat进程而后执行worker单元

celery -A celery_tasks beat

celery -A celery_tasks worker -l info -P eventlet

注意: 当打开beat后而若没有打开worker执行单元会导致beat进程不断向数据库中加入数据

相关推荐
墨染青竹梦悠然16 小时前
基于SpringBoot + vue的农产品销售系统(华夏鲜仓)
vue.js·spring boot·python·django·毕业设计·毕设
wanderful_16 小时前
自定义用户体系下 Django 业务模块开发踩坑与通用解决方案(技术分享版)
后端·python·django
H Journey17 小时前
Django 教程
数据库·django·sqlite
墨染青竹梦悠然17 小时前
基于Django+vue的单词学习平台
前端·vue.js·后端·python·django·毕业设计·毕设
YJlio1 天前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
YJlio2 天前
1.6 使用 Streams 工具移除下载文件的 ADS 信息:把“来自互联网”的小尾巴剪掉
c语言·网络·python·数码相机·ios·django·iphone
B站_计算机毕业设计之家2 天前
电影市场预测分析系统 | Python Django Echarts 票房可视化分析 大数据 人工智能 毕业设计源码(建议收藏)✅
大数据·数据库·python·机器学习·django·毕业设计·echarts
vx_biyesheji00012 天前
电影个性化推荐与分析系统 | Python Django 协同过滤 Echarts 词云分析 大数据 人工智能 deepseek 毕业设计源码(建议收藏)✅
大数据·人工智能·python·机器学习·django·毕业设计·echarts
YJlio2 天前
1.5 解压 Zip 压缩包与推荐目录结构:给 Sysinternals 找个长期“住所”
c语言·网络·python·数码相机·ios·django·iphone
予枫的编程笔记3 天前
【Linux高级篇】系统级vs用户级Crontab:区别在哪?实战配置一步到位
定时任务·linux命令·linux运维·crontab·运维干货·crontab陷阱·linux实战