延时任务调度系统——技术选型

本文探讨了9种延时任务调度系统的实现方案,包括倒计时线程、定时任务扫描、改良定时任务扫描、Rabbitmq、Redis SortedSet、Redis expired_time、DelayQueue、时间轮和第三方中间件。分析了各自的优缺点,推荐使用实现简单的Redis和时间轮方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      经常会有这样的需求,包含大量的延时执行任务

1,如一个代办事项app,代办实现可以设定触发时间,像闹钟一样。

2,如美团的订单,下单后10分钟不支付,会自动取消。

3,淘宝用户7天不确认收货,自动确认收货。

诸如以上需求,需要的就是一个延时任务执行系统。实现的方案有很多,各有优劣:

一,为每个任务创建一个倒计时线程

优点:实现简单,及时性高

缺点:严重浪费服务器CPU资源,如果数据量巨大,要创建多少线程啊;

           线程和数据存在于内存中,宕机或redeploy后无法恢复;

二,定时任务扫描

    利用定时任务轮询数据库,扫描出来到时间的数据。

优点:实现简单

缺点:扫描频率高的话,会浪费大量的服务器资源;

           扫描频率低的话,及时性无法保证;

           扫描频率中等的话,既浪费服务器资源,又无法保证及时性。

三,改良的定时任务扫描

    将过期时间分为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值