一口气说出 6种 延时队列的实现方案,面试稳稳的面试
下边会介绍多种实现延时队列的思路,哪一种方式都没有绝对的好与坏,只是看把它用在什么业务场景中,技术这东西没有机器的只有最合适的。ide
1、延时队列的应用
什么是延时队列?顾名思义:首先它要具备队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说能够指定队列中的消息在哪一个时间点被消费。调试
延时队列在项目中的应用仍是比较多的,尤为像电商类平台:中间件
一、订单成功后,在30分钟内没有支付,自动取消订单队列
二、外卖平台发送订餐通知,下单成功后60s给用户推送短信。it
三、若是订单一直处于某一个未完结状态时,及时处理关单,并退还库存电商
四、淘宝新建商户一个月内还没上传商品信息,将冻结商铺等class
。。。。淘宝
上边的这些场景均可以应用延时队列解决。技术
2、延时队列的实现我我的一直秉承的观点:工做上能用JDK自带API实现的功能,就不要轻易本身重复造轮子,或者引入三方中间件。一方面本身封装很容易出问题(大佬除外),再加上调试验证产生许多没必要要的工做量;另外一方面一旦接入三方的中间件就会让系统复杂度成倍的增长,维护成本也大大的增长。