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

得到如图所示的柱状图,其数据量大概为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()函数中即可,项目启动的同时会启动定时器

django中定时任务的实现相关推荐

  1. Django中Celery简介

    初识Celery: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,可将一些耗时的任务放入该消息队列中处理,一些定时任务也可以放入队列中自动执行 ...

  2. 任务队列:celery快速入门及django中celery的用法

    文章目录 一.celey的简介 1.1 celery的工作机制 1.2 安装celery(5.2版本) 二.celery快速入门 2.1 选择broker 2.2 celery的简单使用 2.2.1 ...

  3. Django 中使用Celery实现异步任务

    1.在settings.py 同级目录下,新增一个celery.py的文件 需要注意的是:你的项目目录名要和配置一样 例如我的项目目录名就是 base_django_api 我的目录结构如下: # c ...

  4. 如何在Django中接收JSON格式的数据

    Django做了大量工作简化我们的Web开发工作, 这其中当然也包括接收来自客户端的数据这一普遍需求. 大部分时候,从客户端传入的数据主要是FORM的POST数据,和来自URL的GET数据, 在Dja ...

  5. django中使用celery简单介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...

  6. Django中的Form

    2019独角兽企业重金招聘Python工程师标准>>> 一.使用Form Django中的Form使用时一般有两种功能: 1.生成html标签 2.验证输入内容 要想使用django ...

  7. Windows下在Django中创建项目时ImportError: No module named django.core解决方法

    Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...

  8. echarts导入mysql数据库_Echarts最新:Django中从mysql数据库中获取数据传到echarts方式_爱安网 LoveAn.com...

    关于"Echarts"的最新内容 聚合阅读 这篇文章主要介绍了基于vue+echarts 数据可视化大屏展示的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...

  9. 在BAE搭建的Django中实现图片上传并用jquery预览图片

    在BAE上搭建好了django,如何实现图片上传并预览呢? 想要实现图片上传并不难,但是想看到刚上传的图片,就得在服务器返回上传后图片的url.可是返回数据的话,网页就会重定向.因此想要在上传页面预览 ...

最新文章

  1. 《虚拟化与云计算》第4章 虚拟化的业界动态
  2. windows网络负载平衡
  3. Shell脚本个例二
  4. 展示 测速_科技产品 | 人工智能amp;科技展示厅——助力高校人工智能学科建设及产业人才培养...
  5. 特斯拉是l3还是l2_比特斯拉还“高一级”,长安的“L3级自动驾驶”到底什么来头?...
  6. C# 实现Winform全屏后不遮挡任务栏,显示任务栏
  7. 位,字,字节之间关系及关联知识普及
  8. 谈谈CLOSE_WAIT
  9. 【转】Kotlin 新版来了,支持跨平台!
  10. Python基于用户协同过滤算法的电影推荐代码demo
  11. Spring-boot 项目中使用 jackson 遇到的一个问题
  12. xxx系统的6大质量属性战术
  13. html 字体思源_CSS3嵌入字体@font-face调用字体(思源宋体regula/PingFang SC/ttf/woff)...
  14. matlab生成正交试验,正交表的构造方法及Matlab实现.pdf
  15. 开发团队人员配备及工作分配
  16. 转载:  Lodop、C-Lodop打印控件报错
  17. 怎么将模糊的照片变清晰
  18. 上传artifacts到maven仓库
  19. [宋史学习] 赵元僖
  20. IP-guard安全U盘操作手册

热门文章

  1. Python 随机数函数 choices
  2. 图像处理算法之变老特效
  3. 大数据(3h)HIVE引擎更换
  4. 交会定点中的三种角度交会法
  5. 史蒂夫·乔布斯语录(Steve Jobs Quotes)
  6. 第七篇:文件和文件夹得权限
  7. 关于女性社群网站的讨论
  8. 操作系统期末复习---问答题
  9. Python调用WebService服务 查询天气预报
  10. 免费天气预报的WebService服务接口