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

一、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(小程序密钥)
    在这里插入图片描述
    在这里插入图片描述

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

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

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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JustAuth可以通过集成公共组件来实现微信小程序的授权登录。微信小程序授权登录是一种特殊的第三方授权登录,它遵循OAuth2.0协议的授权登录流程,但在对接的流程中有一些不同之处。通常的第三方授权登录过程中,获取token的state和code是在回调客户端url中获取的,而微信小程序授权登录获取token的state和code是使用微信提供的特定方法获取到的,然后通过微信传给客户端,客户端拿到code之后再到后台获取openid等微信用户信息,然后进行系统登录相关操作。\[1\] 在开发微信小程序授权登录的业务系统中,可以根据业务需求来扩展注册的功能。大多数互联网业务会在微信小程序授权登录后自动注册用户,但有些传统行业的业务可能只允许某些公司或组织内部的用户登录,不允许微信授权登录就自助注册成系统用户。微信小程序前端框架可以根据自己的需求和擅长的开发方式来选择,但微信授权登录的流程是不变的,可以在此基础上根据业务需求进行修改和优化。\[2\] 在开发微信小程序前端时,可以选择使用微信小程序官方开发方式,也可以使用第三方的开发方式。由于大多数前端开发者都会使用Vue.js开发,可以使用mpvue来开发微信小程序。mpvue是一个基于Vue.js开发微信小程序框架,可以使用Vue.js的开发方式来开发微信小程序。在开发过程中,可以定义微信小程序授权登录相关的接口文件,将业务后台实现的接口统一管理和调用。\[3\] #### 引用[.reference_title] - *1* *2* *3* [SpringCloud微服务实战——搭建企业级开发框架(五十二):第三方登录-微信小程序授权登录流程设计和实现](https://blog.csdn.net/wmz1932/article/details/129749772)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值