0318-SPACE 0318-SPACE

django中定时任务的实现


作者: LLL 浏览量:577 阅读量:1 发布:2021年10月28日 20:50 更新:2021年10月28日 20:50 Django 定时任务 编辑文章 删除文章
预计阅读时长:0分58秒

    最近在浏览自己的网站时,发现自己有些地方的功能还是有些问题,体验起来极差,主要是后台数据的统计(一个页面需要等待几十秒后才能加载完成!!!),因为数据量有点大,统计起来非常的耗时,所以想到了能不能预先将数据处理好,然后在前端请求数据的时候,直接将预处理好的数据发过去就行了,然后几经百度后发现,原来django本身就支持这种功能,真不愧是企业级的web框架!!!考虑的周全~

在这里插入图片描述

得到如图所示的柱状图,其数据量大概为30000(现有的访问量)*12(12个月)*30(30天)*9(9个页面),这个只是保守的估算,总之,在我之前统计的时候,绘制一个图下来需要40秒左右,真的等的花儿都谢了~好在这种折磨只有我一个人能体验到.但是,在加了一个定时任务后,大概1秒钟就能加载出来了!!

其次还有一个新增的功能也是逼得我迫不得已的去找这个"定时任务"的功能,估计如果不是为了新增这个功能,我也不会去处理这个加载慢的问题.

在这里插入图片描述

如图所示,我打算即将在"学习星球"页面新增热文排行榜功能,也是为了方便我后台统计的数据更好的展示,以及看看哪些文章更受大家的喜欢,这个数据的统计量相较于上面那个少一些,但是加载出来也大概需要10秒左右,而且这个功能是每个人都能使用到的,所以我不得不想想方法(如果是我一个人使用这个功能,我估计我还能忍受哈哈哈哈)

最后贴上功能源码:

# 定时任务
from apscheduler.scheduler import Scheduler
from learningPlanet.views import doTopStat
from threading import Thread

# 实例化
sched = Scheduler()
# 每一小时执行一次
@sched.interval_schedule(seconds=60*60)
def sched_test():
# 刷新排行榜
th1 = Thread(target=doTopStat)
# 刷新后台的统计数据
th2 = Thread(target=drawPictureAndWriteToFile)
# 启动任务
th1.start()
th2.start()
sched.start() #启动定时器


源码(放在项目中任意已经注册的app的views中即可)很简单,支持多线程,把需要的脚本功能定义在sched_test()函数中即可,项目启动的同时会启动定时器



 {[collection_status]}  {[likes]}

有什么想对作者说的吗?

发 表
{[ comment.user.username]} {[comment.time]}
删除
{[comment.content]}
热文排行榜
日热榜 周热榜 月热榜

标签
golang 个人介绍 开发环境 最大之数组合 gui mro nginx 函数模板 清单 并发编程 小细节 matlab 图像处理 oracle python leetcode 多线程 c++ 人工智能 插入排序 seaborn 爬虫学习 动态规划 负载均衡 数学模型 虚拟环境 字符集 js 异常 面向对象 多态 异或 冒泡排序 循环语句 容器 Django 高级变量类型 数据库 单调栈 java基础 web aiohttp bug 基础 形态学操作 最短路径 闭包 桶排序 with tcp 数字图像 双指针 爬虫 算法 OpenCV 开发 开机自启 else 选择排序 装饰器 排序算法 HTM 数据处理 测试 二分法 c# python基础 存储异常 java 学生成绩管理系统 ER图 笔记 GUI编程 二叉树 序列 git 梯度计算 数据结构 多进程 table 建模 数据库编程 巩固 三数之和 实验报告 可视化 数据分析 可控自启 上下文管理器 生成器、迭代器 Linux 存储泄漏 角点检测 ip 数据类型 asyncio 动态 开发记录 协程 开发工具 numpy学习 特性 人脸检测 二叉排序树 整蛊 Web开发编程 面经 pygame 几何变换 html 数组 异步 有效单词数 十进制 内存管理 霍夫变换 飞机大战 drw restful 关于博主 penCV 可迭代对象 对象引用 Lcss pl css 基础爬虫框架 视频处理 插件 MSE 浅拷贝 迷宫求解 阶层 初学 图像去噪 层次遍历 defaultD 属性 边缘检测 暴力解法 生成器 回溯 优化更新 生成器函数 贪心算法 深浅拷贝 三元表达式 高阶函数 并查集 文件 最小生成树 z最短距离 os模块的学习 admin pytorch pyecharts 可达鸭 穷举法 模块 多继承 排序 无限弹窗 运算符重载 dfs CPUID 美赛 mysql cursor 函数 数据库原理 迭代器 安装 settings turtle dp yield from 基数排序 降维 绘图 线性回归 目标追踪 强类型 前端开发 pandas 小游戏 分布式 流程控制 文件目录指令 变量 ckeditor 数学建模 命令 对象 oracle基础 网络编程(书) 推导式 docker bfs 语法进阶 模板 反向传播 iter() crud 计数排序 drf 漫威 解析性 三次握手 归约函数 查询 目标跟踪 plt 深拷贝 hash表 图像直方图 题库链接 game Windows 网络编程 线索化 动态数组 复习 JavaScript 版本控制 存储过程 视频读写 脚本 二进制 性能 面向对象的特性 Haar特征 环境搭建 翻转 数据 正则表达式 静态资源 ARP 地址 集群 虚函数 定时任务 归并排序 numpy

推荐


留言
{[ message.user.username ]}({[ message.time ]})

{[ message.content ]}