业务数据聚合分析 xxl-job定时任务

统计每天的用户注册数。与其每次都去扫描用户表,不如每天凌晨跑个定时任务,把结果算好存起来

数据库

user表

用户统计数据聚合表

定时任务

java 复制代码
@XxlJob("dailyUserStatic")
    public void dailyUserStatic() {
        log.info("xxl-job dailyUserStatic");

        Integer newUserCount = userService.newUserCount();

        Integer activeUserCount = userService.activeUserCount();

        UserDailyStatic userDailyStatic = new UserDailyStatic();
        userDailyStatic.setStatDate(LocalDate.now().minusDays(1));
        userDailyStatic.setActiveUserCount(activeUserCount);
        userDailyStatic.setNewUserCount(newUserCount);
        userDailyStaticService.save(userDailyStatic);

    }

sql

newUserCount

java 复制代码
<select id="newUserCount">
        SELECT count(1) AS new_user_count
        FROM `user`
        WHERE DATE(create_time) = DATE(DATE_SUB(CURDATE(),INTERVAL 1 DAY))
        GROUP BY DATE(create_time)
    </select>

activeUserCount

java 复制代码
<select id="activeUserCount" resultType="java.lang.Integer">
        SELECT count(1) AS active_user_count
        FROM `user`
        WHERE DATE(login_time) = DATE(DATE_SUB(CURDATE(),INTERVAL 1 DAY))
        GROUP BY DATE(login_time)
    </select>
相关推荐
Flying pigs~~18 小时前
RAG智慧问答项目
数据库·人工智能·缓存·微调·知识库·rag
misL NITL19 小时前
mysql之如何获知版本
数据库·mysql
许彰午19 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
2401_8323655220 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
2301_7796224120 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_7662834420 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
北极的冰箱21 小时前
MySQL Ver 8.0.41 for macos14.7密码遗忘
数据库·mysql
XDH_CS21 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
treacle田1 天前
达梦数据库-统计信息收集-记录
数据库·达梦数据库统计信息收集
审判长烧鸡1 天前
PostgreSQL之索引/函数/触发器
数据库·postgresql·触发器·函数·索引