定时任务 - 定时任务弊端与优化方案

博客讨论了定时任务在关闭超期未支付订单时存在的问题,如时间差、集群支持和数据库性能影响。提出了只用单机运行定时任务的解决方案,但指出这种方式仅适用于小型项目。后续引入消息队列(如RabbitMQ、RocketMQ等)的概念,通过延时队列来更精确地处理订单关闭,提高了系统的健壮性和效率。
摘要由CSDN通过智能技术生成

使用定时任务关闭超期未支付订单,会存在的弊端:
1. 会有时间差,程序不严谨
     10:39下单,11:00检查不足1小时,12:00检查,超过1小时多余39分钟
2. 不支持集群
     单机没毛病,使用集群后,就会有多个定时任务
     解决方案:只使用一台计算机节点,单独用来运行所有的定时任务
3. 会对数据库全表搜索,及其影响数据库性能:select * from order where orderStatus = 10;
定时任务,仅仅只适用于小型轻量级项目,传统项目

后续课程会涉及到消息队列:MQ-> RabbitMQ, RocketMQ, Kafka, ZeroMQ...
     延时任务(队列)
     10:12分下单的,未付款(10)状态,11:12分检查,如果当前状态还是10,则直接关闭订单即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值