目录:
- 一、Sring Task (定时任务框架) :
- Sring Task介绍
- Spring Task应用场景
- corn表达式
- corn表达式在线生成器
- SpringTask入门案例:
- 导入maven依赖
- 启动类上添加 @EnableScheduling 注解
- 定时方法上添加 @Scheduled( cron = “xxxxx” ) 注解
- 自定义“定时任务类
- 二、微信小程序开发 :
- 小程序
- 开发、上线小程序流程:
- 微信小程序代码 (苍穹外卖) + 后端代码
一、Sring Task (定时任务框架) :
Sring Task介绍
- Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间执行某个代码逻辑。
(定时自动执行某段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(小程序密钥)
第三步、开发小程序。
完成小程序开发者绑定、开发信息配置后,开发者可下载开发者工具、参考开发文档进行小程序的
开发和调试。
开发者工具下载地址
开发者工具-网盘领取第四步、提交审核和发布。
完成小程序开发后,提交代码至微信团队审核,审核通过后即可发布(公测期间不能发布)。
微信小程序代码 (苍穹外卖) + 后端代码
- 微信小程序代码 (苍穹外卖) ,附带有完整的后端代码 + 微信小程序代码,以及相关的开发信息。
- 代码链接:
微信小程序代码 + 后端代码 (网盘下载)