实习工作之定时任务

news2024/12/26 0:45:41

需求:在当天晚上12点定时将过期数据的状态置为冻结状态

  1. 版本一代码实现[相当于是一个死代码,因为不能自动调度]
public void updateStatus() throws CommonException, ParseException {
        String date_str = "2023-07-01 00:00:00";
        Date expireTime = DateUtils.toDate(date_str);
        if(userCardMapper.countExpiredDate(userCardPageReqList,expireTime)<=0){
            throw ExceptionUtils.create(CenterErrorEnum.PROJECT_CODE_NOT_BLANK);
        }
        List<UserCard> userCards = userCardMapper.queryExpiredDate(expireTime);
        userCards = userCards.stream()
                .map(userCard-> {
                    userCard.setEquityUseStatus(EquityUseStatus.FREEZE_06);
                    return userCard;
                }).collect(Collectors.toList());
        userCardMapper.updateStatus(userCards);
    }

mybatis的查询

<select id="countExpiredDate" resultType="java.lang.Integer">
    select count(*) from table
    <where>
        del_flag = 0
        <if test="expireTime != null">
            and expire_time &lt;= #{expireTime,VARCHAR=TIMESTAMP}
        </if>
    </where>
  </select>

 <select id="queryExpiredDate" resultType="UserCard">
    select * from table2
    <where>
      del_flag = 0
      <if test="expireTime != null">
        and expire_time &lt;= #{expireTime,VARCHAR=TIMESTAMP}
      </if>
    </where>
  </select>
  1. 版本二的更新
    问题点:不能写死时间
    采用XxlJob任务调度中心调度
    首先设置时间,使用cron表达式设置定时时间
    在这里插入图片描述

然后设置过期任务

 @XxlJob("updateStatus")
    public ReturnT<String> updateStatus(String param) {
        log.info("===开始===");
        baseMapper.updateStatus();
        log.info("===结束===");
        return ReturnT.SUCCESS;
    }
<update id="updateStatus" >
    update table
    set
    status = '06' where status in ('00','01') expire_time &lt;= #{expireTime,VARCHAR=TIMESTAMP}
  </update>

扩充知识点

  1. Java日期操作
    格式转换器:SimpleDateFormate
SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd HH:mm E");
Date now=new Date();
System.out.println(format1.format(now));
 
out: 2022/10/12 14:28 星期三

String 转Date

String date_str = "2023-07-01 00:00:00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date expireTime = simpleDateFormat.parse(date_str);
  1. Java实现定时任务[Timer类实现该方法]

https://blog.51cto.com/u_14152/6305966

  1. mybatis大于小于等格式

https://blog.csdn.net/p1830095583/article/details/116019413

在这里插入图片描述
4. sql查询日期

https://blog.csdn.net/qq_37075841/article/details/123117720

<select id="method" resultMap="BaseResultMap">
  select  *  from table_a
  where date_format(create_time,'%Y-%m-%d') = #{createTime}
</select>
  1. java.util.Date 和 java.sql.Date区别

https://blog.csdn.net/Yuan_Hang723/article/details/109688772

java.util.Date通常情况下获取日期
java.sql.Date针对sql,只能获取日期,不能获取时间

  1. cron表达式

https://blog.csdn.net/weixin_42408447/article/details/117422084

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么我从 Manjaro Linux 跳到 EndeavourOS

我使用 Manjaro Linux 已经两年了,但随着时间的推移,我最初对 Manjaro 的喜爱逐渐减少,我对它的感觉越来越不舒服。这就是我转向 EndeavourOS 的原因。 我根本不是你所说的 Distrohopper 我早在 20 世纪 90 年代中期就开始使用 Linux,当时使用的是 RedHat Linux。2003 年…

网络请求库-axios的入门指南

网络请求库axios-入门指南 网络请求库-axios认识axios库axios发送请求axios基本使用axios基本演练配置baseURLaxios创建实例axios发送多个请求&#xff08;了解&#xff09; axios请求和响应拦截器axios请求封装&#xff08;简洁&#xff09; 网络请求库-axios 认识axios库 有…

使用 Maya Mari 设计 3D 波斯风格道具(p2)

今天瑞云渲染小编给大家带来了Simin Farrokh Ahmadi 分享的Persian Afternoon 项目过程&#xff0c;解释了 Maya 和 Mari 中的建模、纹理和照明过程。由于篇幅较长&#xff0c;分上下两篇来分别阐述。接着会继续讲述Persian Afternoon 项目过程的纹理和灯光渲染方面内容。 纹理…

Apikit 自学日记:安装、使用浏览器插件测试

Apikit 研发管理和自动化测试产品中&#xff0c;提供了多种发起 API 测试的方式&#xff1a; 服务器测试&#xff1a;通过 Apikit 官方远程服务器发送请求&#xff0c;不需要安装任何插件&#xff0c;但是无法访问本地服务器(localhost)、内网、局域网。 插件测试&#xff1a;…

linux创建软链接

目录 软链接的作用创建软链接删除软链接修改链接 软链接的作用 就如同电影里演的一样&#xff0c;为保护价值昂贵的钻石&#xff0c;做一个和真正的钻石一模一样的假钻石来掩人耳目&#xff0c;假钻石的信息和真的一模一样&#xff0c;看到假的钻石就如同看到真的一样。Linux中…

《基于AidLux的自动驾驶智能预警应用方案》

YOLOP模型转ONNX ONNX是开放式神经网络(Open Neural Network Exchange)的简称&#xff0c;ONNX的规范及代码主要由微软&#xff0c;亚马逊&#xff0c;Facebook和IBM等公司共同开发&#xff0c;以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型的框架有&#xff1…

记录实现QT和qml model/view 交互时候遇到的坑

使用QT的model/view 建立全局静态变量 打印发现有值输出 但是界面无日志显示 原因是一开始使用调用函数传参传的logModel参数加了const参数修饰 这个错误太傻了&#xff0c;找了半天一直怀疑外部类的问题 其实setContextProperty是这么用的 传QObject类型的引用之后它内部会…

【无标题】下载redis工具RESP.app(RedisDesktopManager)

1、安装前提&#xff1a; Windows&#xff1a; 1、Install Microsoft Visual C 2015-2019 x64 (If you have not already). 2、Download Windows Installer from http://redisdesktop.com/download. (Requires subscription)指导手册地址&#xff1a; https://docs.resp.app/…

DataSecurity Plus金融行业案例

摘要&#xff1a;DataSecurity Plus是一款强大的数据安全解决方案&#xff0c;为金融机构提供全面的数据保护和合规性监控。本文将介绍DataSecurity Plus在金融行业的使用案例&#xff0c;包括文件审计、数据分类和合规性报告等功能的应用。 DataSecurity Plus 文件审计&#…

《The book of why》读书笔记 -- introduction:mind over data

最近在浅学causal learning&#xff0c;拜读《The Book of Why》&#xff0c;记录一些笔记&#xff0c;下为书的introduction部分 下面这段话我觉得写得非常好 This book tells the story of a science that has changed the way we distinguish facts from fiction and yet ha…

性能测试如何做?资深10年测试带你揭秘,测试之路进阶...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 在做功能测试、自…

医学访问学者面试技巧注意

医学访问学者面试是获得进一步学术发展和研究机会的重要环节。在面试过程中&#xff0c;准备充分并注意一些关键技巧可以帮助你增加成功的机会。以下是知识人网小编整理的一些建议和技巧&#xff0c;希望对你在医学访问学者面试中取得好成绩有所帮助。 1. 提前了解研究机构&…

LeetCode——找出中枢整数

一、题目 2485. 找出中枢整数 - 力扣&#xff08;Leetcode&#xff09; 给你一个正整数 n &#xff0c;找出满足下述条件的 中枢整数 x &#xff1a; 1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。 返回中枢整数 x 。如果不存在中枢整数&#xff0c;则返回 -1 …

统一移动门户对政企级办公来说有哪些优势?

政府机构和企业在数字化转型后&#xff0c;内部常使用多套不同的信息系统和应用程序。然而&#xff0c;这些系统和应用之间存在信息和数据隔离的问题&#xff0c;导致内部员工需要频繁切换登录&#xff0c;并容易出现信息遗漏和处理延误。这不仅妨碍了工作效率的提升&#xff0…

QML Canvas 裁剪

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 开发中,Canvas 是一个很强大的绘图元素,可以实现各种复杂的图形效果,其中一个重要的特性就是裁剪。它的原理是使用路径或其他形状定义一个封闭区域,将绘图操作限制在该区域内,并隐藏掉超出该区域…

[k8s] arm64架构下k8s部署的坑

本次测试在华为kunpeng-920机器上&#xff0c;cpu配置如下&#xff1a; [rootmaster ~]# lscpu 架构&#xff1a; aarch64 CPU 运行模式&#xff1a; 64-bit 字节序&#xff1a; Little Endian CPU: …

软考--操作系统之文件系统多级索引

目录 概念索引结构索引表索引方式一级索引多级索引 真题分析题目1-存储文件最大长度解析题目2-多级索引占用物理块号解析题目3-综合解析总结 概念 索引结构 一个文件的信息存放在若干不连续物理块中 系统为每个文件建立一个专用数据结构——索引表&#xff0c;并将这些物理块…

快速部署K8s仪表板,助力管理轻松搞定!

https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-dashboard/ Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中&#xff0c;也可以对容器应用排错&#xff0c;还能管理集群资源。 你可以使…

【运维工程师学习三】Linux中Shell脚本编写

【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器&#xff08;bash&#xff09;参数 5、find、grep、xargs、sort、…

C++ 中的字符串类

历史遗留问题 C 语言不支持真正意义上的字符串 C 语言用字符数组和一组函数实现字符串操作 C 语言不支持自定义类型&#xff0c;因此无法获得字符串类型 解决方案 从 C 到 C 的进化过程引入了自定义类型 在 C 中可以通过类完成字符串类型的定义 问题&#xff1a; C 中的…