Spring | Sring Task (定时任务框架) 、微信小程序开发

news2024/11/26 5:23:14

目录:

    • 一、Sring Task (定时任务框架) :
      • Sring Task介绍
      • Spring Task应用场景
      • corn表达式
      • corn表达式在线生成器
      • SpringTask入门案例:
        • 导入maven依赖
        • 启动类上添加 @EnableScheduling 注解
        • 定时方法上添加 @Scheduled( cron = “xxxxx” ) 注解
        • 自定义“定时任务类
    • 二、微信小程序开发 :
      • 小程序
      • 开发、上线小程序流程:
      • 微信小程序代码 (苍穹外卖) + 后端代码

一、Sring Task (定时任务框架) :

Sring Task介绍

  • Spring TaskSpring框架提供的任务调度工具可以按照约定的时间执行某个代码逻辑
    定时自动执行某段Java代码
  • Spring Task自动触发的不需要客户端发送请求

Spring Task应用场景

Spring Task应用场景

  • 信用卡每月还款
  • 银行贷款每月还款提醒
  • 火车票售票系统处理未支付订单
  • 入职纪念日为客户发送通知
    只要需要定理处理的场景都可以用Spring Task

corn表达式

  • cron表达式就是一个字符串,通过corn表达式可以定义任务触发时间
  • corn表达式的构成规则:分为 6个7个域,由空格隔开,每个域代表一个含义。
    每个域的含义分别是 分钟小时(可选)。
  • 例子如
    2023年11月1日上午9点整 对应的 corn表达式 为 : 0 0 9 1 11 2023
    在这里插入图片描述

corn表达式在线生成器

corn表达式在线生成器https://cron.qqe2.com/

SpringTask入门案例:

导入maven依赖
  • Spring Task是一个非常小的框架,小到它单独的一个jar包都没有,与其有关的api集成在spring-context包中
    在这里插入图片描述

  • <!-- spring-context依赖,其中集成了Spring Task的api --> 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.23</version>
    </dependency>
    
启动类上添加 @EnableScheduling 注解
  • 启动类上 添加 @EnableScheduling注解 开启任务调度
    在这里插入图片描述
定时方法上添加 @Scheduled( cron = “xxxxx” ) 注解
  • 定时方法上添加 @Scheduled( cron = “xxxxx” ) 注解。此方法中写具体的业务逻辑

在这里插入图片描述

自定义“定时任务类
  • 定时任务类中需要包含具体的业务逻辑,即任务触发时具体描述什么事情

  • 例子如:

    @Component
    @Slf4j
    /**
     * 定时任务类
     */
    public class MyTask { 
    
        /**
         * 定时任务: 每五秒触发一次
         */
        @Scheduled(cron = "0/5 * * * * ? ")
        public void excuteTask() {
            log.info("定时任务开始执行: {}",new Date());
        }
    }
    
    /**
     * 定时任务类,定时处理订单状态
     */
    @Component
    @Slf4j
    public class OrderTask {
    
        @Autowired
        private OrderMapper orderMapper;
    
        /**
         * 处理超时订单的方法
         */
        @Scheduled(cron = "0 * * * * ? ") //每分钟触发一次
        public void processTimeoutOrder(){
            log.info("定时处理超时订单:{}", LocalDateTime.now());
    
            LocalDateTime time = LocalDateTime.now().plusMinutes(-15);
    
            // select * from orders where status = ? and order_time < (当前时间 - 15分钟)
            List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, time);
    
            if(ordersList != null && ordersList.size() > 0){
                for (Orders orders : ordersList) {
                    orders.setStatus(Orders.CANCELLED);
                    orders.setCancelReason("订单超时,自动取消");
                    orders.setCancelTime(LocalDateTime.now());
                    orderMapper.update(orders);
                }
            }
        }
    
        /**
         * 处理一直处于派送中状态的订单
         */
        @Scheduled(cron = "0 0 1 * * ?") //每天凌晨1点触发一次
        public void processDeliveryOrder(){
            log.info("定时处理处于派送中的订单:{}",LocalDateTime.now());
    
            LocalDateTime time = LocalDateTime.now().plusMinutes(-60);
    
            List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, time);
    
            if(ordersList != null && ordersList.size() > 0){
                for (Orders orders : ordersList) {
                    orders.setStatus(Orders.COMPLETED);
                    orderMapper.update(orders);
                }
            }
        }
    }
    

二、微信小程序开发 :

小程序

  • 小程序 / 微信小程序 是一种新的开发能力,可以在微信内被便捷的获取和传播,同时具有出色的使用体验。

  • 具体了解微信小程序

开发、上线小程序流程:

  • 第一步注册小程序。在微信平台注册小程序,完成注册后可以同步进行信息完善和开发。
    前往注册微信小程序

  • 第二步小程序信息完善

    填写小程序基本信息,包括名称、头像、介绍及服务范围等。

    在这里插入图片描述

    信息完善后要在 开发开发管理开发设置 中获取 AppID(小程序ID)AppSecret(小程序密钥)
    在这里插入图片描述
    在这里插入图片描述

  • 第三步开发小程序
    完成小程序开发者绑定、开发信息配置后,开发者可下载开发者工具、参考开发文档进行小程序的
    开发和调试。
    开发者工具下载地址
    开发者工具-网盘领取

  • 第四步提交审核和发布
    完成小程序开发后,提交代码至微信团队审核,审核通过后即可发布(公测期间不能发布)。

微信小程序代码 (苍穹外卖) + 后端代码

  • 微信小程序代码 (苍穹外卖) ,附带有完整后端代码 + 微信小程序代码,以及相关的开发信息
  • 代码链接
    微信小程序代码 + 后端代码 (网盘下载)

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

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

相关文章

ZKP Introduction of Nova (Yu Guo) 手写笔记

ZKP学习笔记 郭宇老师Nova课程手写笔记

创建asp.net api和docker-compose项目

vs2022创建asp.net core web api项目 创建完成 添加docker-compose支持 添加成功 docker配置 docker-compose配置

腾讯云3年轻量2核2G4M服务器从366.6元三年涨价了?

2023腾讯云双11优惠活动3年轻量应用服务器涨价了&#xff1f;确实是涨价了&#xff0c;仅限于三年时长轻量应用服务器&#xff0c;一年时长并没有涨价&#xff0c;相比隔壁阿里云&#xff0c;腾讯云依旧在提供三年轻量应用服务器和5年时长云服务器CVM已经很难得了&#xff0c;想…

集线器、交换机、网桥、路由器、网关

目录 集线器(HUB)交换机(SWITCH)网桥(BRIDGE)路由器(ROUTER)网关(GATEWAY)交换机和路由器的区别参考 集线器(HUB) 功能 集线器对数据的传输起到同步、放大和整形的作用 属于物理层设备 工作机制 使用集线器互连而成的以太网被称为共享式以太网。当某个主机要给另一个主机发送单…

如何使用 SwiftUI 中新地图框架 MapKit

文章目录 前言MapKit 弃用项MapContentBuilder&#xff08;iOS 17&#xff09;地图交互地图样式地图控件地图相机位置总结 前言 了解 iOS 17 中的 MapKit 后&#xff0c;我们会发现 Apple 引入了更适合 SwiftUI 的 API。 MapKit 弃用项 一旦将你的 App 目标更新到 iOS 17&am…

OpenGL ES入门教程(二)之绘制一个平面桌子

OpenGL ES入门教程&#xff08;二&#xff09;之绘制一个平面桌子 前言0. OpenGL绘制图形的整体框架概述1. 定义顶点2. 定义着色器3. 加载着色器4. 编译着色器5. 将着色器链接为OpenGL程序对象6. 将着色器需要的数据与拷贝到本地的数组相关联7. 在屏幕上绘制图形8. 让桌子有边框…

立创eda 焊接辅助工具使用

立创EDA为板级EDA设计软件。EDA指的是通过计算机的辅助完成电路原理图、印刷电路板文件等的绘制、制作、仿真设计。 立创EDA是一款基于浏览器的&#xff0c;专为中国人设计的&#xff0c;友好易用的EDA设计工具。起于2010年&#xff0c;完全由中国人独立开发&#xff0c;拥有独…

Ubuntu下安装vscode,并解决终端打不开vscode的问题

Visual Studio Code安装 1&#xff0c;使用 apt 安装 Visual Studio Code 在官方的微软 Apt 源仓库中可用。按照下面的步骤进行即可&#xff1a; 以 sudo 用户身份运行下面的命令&#xff0c;更新软件包索引&#xff0c;并且安装依赖软件&#xff1a; sudo apt update sud…

女孩子穿这种粉粉嫩嫩~的卫衣也太好看了吧

果然女孩子穿这种粉粉嫩嫩的衣服 真的超级有甜美可爱氛围哎 软糯亲肤的面料&#xff0c;上身很舒服哦 时尚polo领加上半拉链设计 既实用又美观&#xff0c;穿脱很方便

如何使用Selenium处理Cookie,今天彻底学会了!

01、cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕&#xff0c;客户端与服务器端的连接就会关闭&#xff0c;再次交换数据需要建立新的连接&#xff0c;这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后&#xff0c;第二次请求…

进程终止(不同情况+如何查看:strerror,echo $?),终止的方法(return,exit,_exit),exit和_exit的不同

目录 进程终止 进程终止是什么 进程终止的情况 代码跑完,结果正确/不正确 提前知道结果 不知道结果 strerror 示例 -- echo $? 代码未跑完,程序崩溃 示例 进程退出方法 return退出码 exit(status) _exit(status) exit()和_exit()的不同 示例 缓冲区位置 进…

华为云RDS数据库(Mysql)不买公网IP无法Navicate连接

前言 最近公司有一个项目甲方为了便宜购买了华为云的ECS服务器与RDS云数据库&#xff08;Mysql&#xff09;进行项目部署&#xff0c;实际部署数据库时发现&#xff0c;华为云的数据库需要购买公网IP才能使用Navicate连接数据库&#xff08;不可思议的我还提交工单确认了一下以…

FlexmonsterPivotTable-2.9.63 LICENSE

FlexmonsterPivotTable-v2.9.63用于网络报告的数据透视表组件&#xff0c;用于可视化业务数据的最强大的 JavaScript 工具 与任何技术堆栈集成 该组件可与任何技术堆栈无缝协作&#xff1a; 与Angular、React、jQuery、Vue等 完美集成 没有服务器端依赖项 只需几行代码 即可开始…

ROS笔记之TF坐标变换

ROS笔记之TF坐标变换 code review! 文章目录 ROS笔记之TF坐标变换一些相关函数的用法tf::TransFormBroadcaster tf1; tf1.sendTransform()tf::StampedTransform()tf::Transform()tf::Vector3()详解br.sendTransform(tf::StampedTransform(tf::Transform(tf::Quaternion::getI…

MacCleanse for Mac:提高Mac性能的必备工具

MacCleanse是一款专为Mac用户设计的强大系统清理垃圾软件&#xff0c;能够全面清理您的系统&#xff0c;提高Mac的速度和性能。它可以帮助您轻松删除各种无用的文件和数据&#xff0c;包括系统缓存、浏览器缓存、下载历史记录、垃圾文件、无效的日志文件和无效的应用程序。通过…

代码随想录算法训练营第23期day40|343. 整数拆分、96.不同的二叉搜索树

目录 一、&#xff08;leetcode 343&#xff09;整数拆分 1.动规五部曲 1&#xff09;确定dp数组&#xff08;dp table&#xff09;以及下标的含义 2&#xff09;确定递推公式 3&#xff09;dp的初始化 4&#xff09;确定遍历顺序 5&#xff09;举例推导dp数组 2.贪心算…

Windows安装WinDbg调试工具

一.下载 微软官网下载SDK的地址&#xff0c;有win11&#xff0c;win10&#xff0c;win8&#xff0c;win7&#xff0c;其他 https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/ 二.安装 打开windbg\Installers\X64 Debuggers And Tools-x64_en-us.msi 要安…

[机缘参悟-117] :万物同源、聚散离合,皆为机缘;生死轮回,皆为自然(天空之眼、上帝视角、佛看众生;系统思维、局外清醒、升维思考;躬身入局、局内低调、降维做事;反思过去,立足当下...)

目录 前言&#xff1a; 一、万物同源、聚散离合&#xff0c;皆为机缘 二、万物的形成与消亡 2.1 粒子的聚合与物质的形成 2.2 粒子的分离与物质的消亡 二、生命的形成 2.1 有机体的聚合与生命的形成 2.2 有机体的分离与生命的消亡 三、人的大脑神经系统与精神世界的形…

uniapp原生插件之安卓圆角组件原生插件

插件介绍 安卓圆角组件原生插件可以解决nvue下圆角不生效和严重锯齿 插件地址 安卓圆角组件原生插件 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 uniapp 安卓圆角组件原生插件 用法 在需要使用插件的页面加载以下代码 <leven-radius ref&q…

G761/761系列流量控制伺服阀放大器

两级流量控制机械反馈&#xff08;MFB&#xff09;式伺服阀喷嘴挡板先导级技术&#xff0c;提供高动态性、高分辨率和低迟滞阀芯驱动力高&#xff0c;设计坚固&#xff0c;确保长寿命运行紧凑型设计&#xff0c;只占用装备的有限空间可提供本质安全型&#xff08;G761K和761K&a…