我的网站搭建 (第十七天) celery 定时刷新缓存

news/2024/5/10 18:26:25/文章来源:https://blog.csdn.net/weixin_34040079/article/details/91927277

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    当网站使用redis缓存时,就会涉及到缓存的过期时间,redis数据库中的内容就会消失。这个时候进行用户操作又会变慢,所以要采用一种办法,当缓存刚好要过期时,能够使得redis数据库自动对缓存内容进行更新。这个办法就是使用 celery,具体配置及使用我已经先在Django框架17: Celery的使用中总结完毕,一般按着步骤实现就可以了,这里我只将定时刷新的功能实现一下。

    按照Django框架17: Celery的使用配置好后,在需要添加任务的app/tasks.py添加:

from __future__ import absolute_import
from celery import shared_task
from read_statistics.utils import *@shared_task
def get_post_list():"""缓存博客列表"""post_list = Post.objects.filter(Q(display=0) | Q(display__isnull=True))# 30*60表示30秒*60,也就是半小时cache.set('post_list', post_list, 30 * 60)@shared_task
def get_new_publish():"""缓存最新发表的15篇博客"""new_publish = Post.objects.filter(Q(display=0) | Q(display__isnull=True))[:15]# 60*60表示60秒*60,也就是1小时cache.set('new_publish', new_publish, 30 * 60)@shared_task
def get_new_recommend():"""缓存最新推荐的博客"""post_content_type = ContentType.objects.get_for_model(Post)new_recommend = get_new_recommend_post(post_content_type)# 60*60表示60秒*60,也就是1小时cache.set('new_recommend', new_recommend, 30 * 60)@shared_task
def get_last_7_days_hot_data():"""缓存周榜博客"""last_7_days_hot_data = get_7_days_read_posts()# 60*60表示60秒*60,也就是1小时cache.set('last_7_days_hot_data', last_7_days_hot_data, 30 * 60)@shared_task
def get_last_30_days_hot_data():"""缓存月榜博客"""last_30_days_hot_data = get_30_days_read_posts()# 60*60表示60秒*60,也就是1小时cache.set('last_30_days_hot_data', last_30_days_hot_data, 30 * 60)@shared_task
def get_all_hot_posts():"""缓存总榜博客"""all_hot_posts = get_all_read_posts()# 60*60表示60秒*60,也就是1小时cache.set('all_hot_posts', all_hot_posts, 30 * 60)

    在这里,我设置的缓存过期时间为30分钟,定时任务的时间间隔则需要去后台开启。我使用的是xadmin后台,因为xadmin的注册方式稍与admin注册方式有所区别,所以djcelery应用并不会自动注册到后台应用,在xadmin管理界面也找不到,所以可以同时打开xadmin后台和admin后台。

    完成tasks.py的编写之后,还要运行定时进程,本来可以将此进程放在Supervisor中挂起,考虑到环境配置和路径比较繁琐,我就直接直接通过nohup命令将程序以守护运行,同样可以打印出状态信息。

nohup python manage.py celery beat > celery-beat.log 2>&1 &

    在interval设置好定时间隔后,然后去periodic task中添加任务,并选择对应任务的时间间隔。

原文出处:https://www.jzfblog.com/detail/118,文章的更新编辑以此链接为准。欢迎关注源站文章!

转载于:https://my.oschina.net/zhenfei/blog/2222288

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_701406.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker建网站 4条命令搞定

2019独角兽企业重金招聘Python工程师标准>>> 提起云计算,肯定少不了kvm和Docker这两个重量级的角色。没有这两位,就没有云计算。其中,Docker可能更重要。 我不想跟大家讲Docker的概念什么的。你只需要知道它很厉害就成了&#xff…

Charles抓取微信小程序数据 以及 其它应用网站数据

为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用)。使用Charles可以非常方便的抓取Http/Https请求。官方dmg下载地址:点击此处下载 Charles抓取Http请求 安装完成之后打开Charles,设置端口…

【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

2019独角兽企业重金招聘Python工程师标准>>> 一、负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群…

实现基于Keepalived主从高可用集群网站架构

背景 上一期我们实现了基于lvs负载均衡集群的电商网站架构,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过…

静态网站建立工具

2019独角兽企业重金招聘Python工程师标准>>> VuePressdocusaurus转载于:https://my.oschina.net/zhugenqiang/blog/2992432

JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

接上篇《JAVA WEB快速入门之环境搭建》,在完成了环境搭建后(JDK、Tomcat、IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署,至于为什么…

超详解百万PV网站架构案例部署(内附安装包)

网站架构概述 网站架构是根据客户需求分析的结果,准确定位网站目标群体,设定网站的整体架构,规划、设计网站栏目及其内容,制定网站开发流程的顺序,最大限度地进行高效资源分配与管理的设计。 网站架构分很多种&#xf…

springboot后台弹出前台对话框_基于springboot的精品小说网站

项目简介今天给大家推荐一款小说精品屋,该项目是一个多平台(web、安卓app、微信小程序)、功能完善的小说弹幕网站,包含精品小说专区、轻小说专区和漫画专区。包括小说/漫画分类、小说/漫画搜索、小说/漫画排行、完本小说/漫画、小说/漫画评分、小说/漫画…

网站托管的内容细节你都清楚吗?

网站托管看似简单,其中却蕴含着很多不为人知的细节,稍有处理不好,便达不到想要的效果,那么今天网站托管专家网总管就为大家分享一下网站托管的相关内容。在网站内容方面,要定期有规律的进行更新,需要注意的…

通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码

通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的登录界面单点登录到通用权限管理系统的功能实现。这个方法不好的地方就是暴露了数…

宝塔建站 mysql在哪_宝塔面板建站教程,越详细越好纯小白! - 搜外问答

我的网站就是用宝塔添加的网站:宝塔面板创建站点添加网站的详细教程。宝塔 Linux 面板创建站点添加网站常规方法1、登录宝塔 linux 面板 >> 网站 >> 添加站点,具体如下图所示:2、填写站点域名;FTP 可以选择创建&#…

如何防御网站被ddos攻击 首先要了解什么是流量攻击

什么是DDOS流量攻击?我们大多数人第一眼看到这个DDOS就觉得是英文的,有点难度,毕竟是国外的,其实简单通俗来讲,DDOS攻击是利用带宽的流量来攻击服务器以及网站。 举个例子,服务器目前带宽是100M&#xff0c…

PHP 实现多网站共享用户SESSION 数据解决方案

PHP 实现多网站共享用户SESSION 数据解决方案 来源URL:http://blog.csdn.net/dongdongzzcs/article/details/6906613 一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而…

怎么制作营销型网站才能有效提升优化效果?

中小企业建设网站大多数都是为了推广自身产品或品牌,但是,并非所有网站都能达到网络营销或推广的作用。在这个信息爆炸的时代,必须通过互联网传播,才能发挥网站应有的价值。那为什么要做营销型网站呢?从营销角度来讲&a…

一个母婴电子商务网站贝贝网的大数据平台及机器学习实践【转】

关键字:大数据平台、机器学习 贝贝网的主要产品是垂直的母婴类,母婴相对一般的电子商务网站有一些特点:第一个特点是商品周期短,在母婴网站上的商品,在线的时间不会超过5-7天,第二个是用户需求的变化快&…

django前端引用数据_「基于Python技术的智慧中医商业项目」Django前端网站篇-5.资讯的数据交互...

如果你对中医感兴趣欢迎留言讨论,觉得我的内容对你有帮助的话,能够请我喝一杯沪上阿姨不禁万分感谢。内容简介本章介绍Django搭建中医网站项目平台前端建设之资讯模块的数据交互的内容。其中由于代码量较大,因此部分模块代码举例说明&#xf…

干货 | NLP、知识图谱教程、书籍、网站、工具...(附资源链接)

来源:人工智能头条本文多资源,建议阅读收藏。本文整理了关于 NLP 与知识图谱的众多参考资源,涵盖内容与形式非常丰富。[ 导读 ]本文作者一年前整理了这份关于 NLP 与知识图谱的参考资源,涵盖内容与形式也是非常丰富,接…

干货收藏 | 计算机学习绝对不能错过的10大网站(内附网站链接)

作者:肖镇东本文共2071字,建议阅读5分钟。本文整理出大数据和人工智能领域最实用,质量最高的10大技术网站信息,既可以用于丰富技术知识,也可以用于学术研究。[ 导读 ]随着AI,大数据这些技术的快速发展&…

程序员放大招教你网站怎么做短信验证码防刷验证码机制-速码云

文章来源:http://www.4006026717.com 在我们开始发送了 短信验证码 的时候在前台中会出现一分钟的倒计时,进行了这个操作了之后,在这段时间之内,如果用户多次提交的话是无法发送请求的。这种的方法是最为经常使用的一种&#xff0…

Spring Boot 搭载属于你的网站框架(一)

Spring Boot 搭载你的网站框架(本次demo演示 使用工具 idea) 使用springboot优点,简单快速便捷,只需要管理好pom文件,构建一个新项目是非常快的。 而且内置tomcat,用命令 java -jar jar包路径 的形式启动网…