当前位置: 首页 > news >正文

网站icp备案费用佛山百度网站快速排名

网站icp备案费用,佛山百度网站快速排名,营销型网站制作哪个好薇,网页制作软件序列号Spring Task 完成订单状态定时处理, 如处理支付超时订单 Spring Task介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 应用场景: 信用卡每月还款提醒 火车票售票系统处理未支付订单 入职纪念日为用户发送通知 点外…

Spring Task 完成订单状态定时处理, 如处理支付超时订单

Spring Task介绍

Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

应用场景:

信用卡每月还款提醒

火车票售票系统处理未支付订单

入职纪念日为用户发送通知

点外卖未按时支付取消订单 

只要是需要定时处理的场景都可以使用Spring Task

cron表达式

cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间
构成规则: 分为6或7个域, 由空格分隔开, 每个域代表一个含义

每个域的含义分别为: 秒, 分钟, 小时, 日, 月, 周, 年(可选)

周 是 周几 的意思

通配符:

* 表示所有值;

? 表示未说明的值,即不关心它为何值;

- 表示一个指定的范围;

, 表示附加一个可能值;

/ 符号前表示开始时间,符号后表示每次递增的值;

cron表达式案例:

*/5 * * * * ? 每隔5秒执行一次

0 */1 * * * ? 每隔1分钟执行一次

0 0 5-15 * * ? 每天5-15点整点触发

0 0/3 * * * ? 每三分钟触发一次

0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发

0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发

0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

为了描述这些信息,提供一些特殊的字符。这些具体的细节,我们就不用自己去手写,因为这个cron表达式,它其实有在线生成器。 

cron表达式在线生成器:在线Cron表达式生成器

通过cron表达式 定义触发时间

入门案例

Spring Task使用步骤 

1). 导入maven坐标 spring-context(已存在)

 

2). 启动类添加注解 @EnableScheduling 开启任务调度

3). 自定义定时任务类 (主要工作,描述任务逻辑) 

        类也要交给容器管理, 所以也要加上@Component 注解

订单状态定时处理

需求分析

用户下单后可能存在的情况:

  • 下单后未支付,订单一直处于“待支付”状态
  • 用户收货后管理端未点击完成按钮,订单一直处于“派送中”状态

支付超时的订单如何处理? 派送中的订单一直不点击完成如何处理?

对于上面两种情况需要通过定时任务来修改订单状态,具体逻辑为:

  • 通过定时任务每分钟检查一次是否存在支付超时订单(下单后超过15分钟仍未支付则判定为支付超时订单),如果存在则修改订单状态为“已取消”
  • 通过定时任务每天凌晨1点检查一次是否存在“派送中”的订单,如果存在则修改订单状态为“已完成”

代码开发

1). 自定义定时任务类OrderTask(待完善):

 2). 在OrderMapper接口中扩展方法

 3). 完善定时任务类的processTimeoutOrder方法:

4). 完善定时任务类的processDeliveryOrder方法:

/*** 处理“派送中”状态的订单*/@Scheduled(cron = "0 0 1 * * ?")public void processDeliveryOrder(){log.info("处理派送中订单:{}", new Date());// select * from orders where status = 4 and order_time < 当前时间-1小时LocalDateTime time = LocalDateTime.now().plusMinutes(-60);List<Orders> ordersList = orderMapper.getByStatusAndOrdertimeLT(Orders.DELIVERY_IN_PROGRESS, time);if(ordersList != null && ordersList.size() > 0){ordersList.forEach(order -> {order.setStatus(Orders.COMPLETED);orderMapper.update(order);});}}

 

http://www.yayakq.cn/news/500067/

相关文章:

  • 商务网站建设的基本流程郑州做网站公司汉狮价格
  • 免费空间说说赞领取网站智能建筑网站
  • 网站建设方案 报价河南省城乡与住房建设厅网站首页
  • 网站站点管理自己开店怎么办会员系统
  • 滨江建设工程网站wordpress同时置顶多篇文章
  • 彭州建设网站绵阳科技城建设
  • 台州网站建设网站推广360优化大师历史版本
  • 花都建站沈阳京科医院男科
  • jsp如何进行购物网站开发广西壮族自治区建设厅官方网站
  • 王府井网上商城是正品吗seo云优化外包
  • 企业建设网站企业建筑网站do
  • 网站多国语言洛阳seo管理系统推广团队
  • 迁西网站定制聊城网站开发培训
  • 自己做的网站怎么给域名备案wordpress 4.3.4
  • app网站建设教程视频智能手机软件开发
  • 高端营销型网站制作租空间做网站需要多少钱
  • 怎样做推广网站西安网站建设技术
  • 网站有标题wordpress安全插件下载
  • 网站注销重新备案忻州网站建设
  • 西安网站开发多少钱十大网络安全上市公司
  • 网站建设策划 流程图五核网站建设
  • 河北营销型网站建设公司网站大全
  • WordPress网站远程访问网站的栏目建设在哪里
  • 可以做免费的网站吗江苏省建筑网监督信息平台
  • 礼品兑换网站怎么做网站建设公司调研汇报ppt
  • 国外哪个网站专做展厅wordpress rclean
  • 做的网站提示不安全问题大型网站开发 c
  • 小米路由HD可以做网站吗多用户商城思维导图
  • 怎样做企业的网站首页wordpress后台ftp
  • 怎么提高网站访问量wordpress 附件插件下载