首页 > 其他分享 >热文章定时计算-定时任务

热文章定时计算-定时任务

时间:2023-07-13 17:11:46浏览次数:40  
标签:load return import 任务 首页 文章 dto 定时 加载

(1)在xxl-job-admin中新建执行器和任务

新建执行器:leadnews-hot-article-executor

新建任务:路由策略为轮询,Cron表达式:0 0 2 * * ?    每天凌晨2点

(2)leadnews-article中集成xxl-job

导入依赖、config、修改nacos配置文件

(3)创建定时任务

package com.heima.article.job;

import com.heima.article.service.HotArticleService;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class ComputeHotArticleJob {

    @Autowired
    private HotArticleService hotArticleService;

    @XxlJob("computeHotArticleJob")
    public void handle(){
        log.info("热文章分值计算任务调度开始执行");
        hotArticleService.computeHotArticle();
        log.info("热文章分值计算任务调度任务结束");
    }

}

 

查询文章接口改造:

                                             

在aparticleservie中添加从缓存中加载热文章数据的load2方法,在controller的加载首页改成调用load2方法。

/**
     * 加载文章列表
     *
     * @param dto
     * @param type      1:加载更多    2:加载最新
     * @param firstPage
     * @return
     * @Param firstPage  是否是首页,true加载redis,false调用load加载
     */
    @Override
    public ResponseResult load2(ArticleHomeDto dto, Short type, boolean firstPage) {
        
        if(firstPage){
            //是首页,从redis中获取数据
            String jsonStr = cacheService.get(ArticleConstants.HOT_ARTICLE_FIRST_PAGE + dto.getTag());
            if(StringUtils.isNotBlank(jsonStr)){
                List<HotArticleVo> hotArticleVoList = JSON.parseArray(jsonStr, HotArticleVo.class);
                ResponseResult responseResult = ResponseResult.okResult(hotArticleVoList);
                return responseResult;
            }
        }
        //不是首页,调用load从数据库加载
        return load(dto, type);
    }

    @Autowired
    private ApArticleService apArticleService;
    /**
     * 加载首页
     * @param dto
     * @return
     */
    @PostMapping("/load")
    public ResponseResult load(@RequestBody ArticleHomeDto dto){
//        return apArticleService.load(dto, ArticleConstants.LOADTYPE_LOAD_MORE);
        return apArticleService.load2(dto, ArticleConstants.LOADTYPE_LOAD_MORE, true);
    }

 

标签:load,return,import,任务,首页,文章,dto,定时,加载
From: https://www.cnblogs.com/fxzm/p/17551499.html

相关文章

  • 06_sar:敏感文件泄露、文件上传、组件漏洞、反弹shell、计划任务提权
    1.信息收集1.1主机发现1.2端口扫描1.3具体扫描1.4目录扫描1.5nmap默认脚本扫描2.信息利用2.1访问网站:只有一个apache2的页面2.2访问robots.txt因为robots.txt大多数都是存的目录,所以尝试访问一下可以看到一个带有版本号的文件,这个可能是一个软件,下载压缩包通过观察里面的描述确定......
  • Asp.Net Core 项目实战之权限管理系统使用AdminLTE搭建 -- 系列文章
    0Asp.NetCore项目实战之权限管理系统(0)无中生有1Asp.NetCore项目实战之权限管理系统(1)使用AdminLTE搭建前端2Asp.NetCore项目实战之权限管理系统(2)功能及实体设计3Asp.NetCore项目实战之权限管理系统(3)通过EntityFrameworkCore使用PostgreSQL4Asp.NetCore项目......
  • Flutter系列文章-Flutter环境搭建和Dart基础
    Flutter是Google推出的一个开源的、高性能的移动应用开发框架,可以用一套代码库开发Android和iOS应用。Dart则是Flutter所使用的编程语言。让我们来看看如何搭建Flutter开发环境,并了解Dart语言的基础知识。一、Flutter环境搭建1.安装FlutterSDK首先,访问Flutter官网下载Flutte......
  • 热点文章定时计算
    需求:为每个频道缓存热度较高的30条文章优先展示断文章热度较高的标准是什么?文章:阅读,点赞,评论,收藏                        packagecom.heima.article.service.impl;importcom.alibaba.fastjson.JSON;importcom.heima.ap......
  • linux定时任务
    1.Crontab命令文件保存在/var/spool/cron下crontab[-u<用户名称>][配置文件]或crontab{-l|-r|-e}-u#<用户名称>是指设定指定<用户名称>的定时任务,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设定自己......
  • 【文章】Markdown(2023-07-12更新)
    Markdown博客食用效果更佳欢迎大家指出错误并联系这个蒟蒻你是第个看到这篇文章的人。更新日志2023-07-1220:02文章完成前言本蒟蒻最近看了\(\operatorname{QOJ}\)中的FAQ,然后发现了一件很神奇的事:\(\operatorname{FAQ}\)中博客部分写了个什么玩意?所以来补充一下。......
  • 7DGroup性能&测试开发文章持续更新(2019/10/15)
    性能闲谈系列:浅谈window桌面GUI技术及图像渲染性能测试实践杂谈:性能测试的范围到底有多大?戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题对性能测试评估分析优化市场的反思泛谈系统级跟踪和应用级跟踪性能测试分析优化该有的范围期待996ICU的条款尽早加入到开源协议中!性能基......
  • 扩散模型在文本摘要任务中可以采用的训练方法
    扩散模型在文本摘要任务中可以采用的训练方法条件控制通过设定不同的条件c,文本生成任务可以被进一步分类为unconditionalgeneration,attribute-to-textgeneration(如属性控制),text-to-textgeneration(如机器翻译)。已有的文本扩散模型设计了不同的conditioningstrategies将不同......
  • Linux下python脚本自启动和定时启动
    一、服务器开机自动运行用root权限编辑以下文件 sudovim/etc/rc.local 编辑启动脚本的命令地址 /usr/bin/python3/path/to/python>/path/to/log 二、定时启动编辑crontab文件 crontab-e 编辑命令 */30****/usr/bin/python3/path/to/python>>/path/to......
  • crontab定时任务
    crontab定时任务[root@master~]#cat/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root#Fordetailsseeman4crontabs#Exampleofjobdefinition:#.----------------minute(0-59)#|.-------------hour(0-23)#||.--......