1.定时任务JOB
定时任务扫描数据库 ,不详述了。
优点:简单易行,支持集群操作
缺点:(1)对服务器内存消耗大。
(2)存在延迟,比如你每隔3分钟扫描一次,那最坏的延迟时间就是3分钟。
(3)数据量大时数据库损耗极大。
2.JDK的延迟队列DelayedQueue
优点:效率高,任务触发时间延迟低。
缺点:(1)
服务器重启后,数据全部消失,怕宕机
(2)集群扩展相当麻烦
(3)因为内存条件限制的原因,比如下单未付款的订单数太多,那么很容易就出现OOM异常
(4)代码复杂度较高
(5)时间轮算法
3.redis缓存
使用 redis sorted set
利用redis的zset,zset是一个有序集合,每一个元素(member)都关联了一个score,通过score排序来取集合中的值
添加元素:ZADD key score member [[score member] [score member] …]
按顺序查询元素:ZRANGE key start stop [WITHSCORES]
查询元素score:ZSCORE key member
移除元素:ZREM key member [member …]
优点:(1)由于使用Redis作为消息通道,消息都存储在Redis中。如果发送程序或者任务处理程序挂了,重启之后,还有重新处理数据的可能性。
(2)做集群扩展相当方便
(3)时间准确度高
缺点:(1)部署redis花费
分享到:
相关推荐
java使用DelayQueue延迟队列和Redis缓存实现订单自动取消功能
本文 介绍了两款短延时电路-延时指示灯
关断延时定时器-跟我学swf,
接通延时定时器-跟我学swf,接通延时定时器-跟我学。
保持型接通延时定时器-跟我学swf,保持型接通延时定时器-跟我学。
spring boot +active mq 通过延时队列实现订单支付超时自动取消
S7-1200 保持型接通延时定时器-跟我学 FLASH视频rar,S7-1200 保持型接通延时定时器-跟我学 FLASH视频
一、关于Qt实现非阻塞延时的方法: 二、关于Qt中的阻塞延时实现方法: 一、关于Qt实现非阻塞延时的方法:void QSleepTimeSet::Delay_M
51单片机延时3-4秒汇编程序 ORG 0 CLR P3.3 SETB P1.2 SETB P1.1 CLR P3.4 MAIN: JB P1.5,NXT1 LCALL DIS CLR P1.2 CLR P1.1 SETB P3.3 SETB P3.4 LCALL MAIN NXT1: LCALL DIS CLR P...
S7-1200 关断延时定时器-跟我学 FLASH视频rar,S7-1200 关断延时定时器-跟我学 FLASH视频
DelayQueue是一个无界阻塞队列,只有在延迟期满时,才能从中提取元素。这篇文章主要介绍了springboot执行延时任务-DelayQueue的使用,需要的朋友可以参考下
00-59秒计时器(利用软件延时)-相关资料.doc
延时摄影 Lapse It v4.70 版本:4.70 软件语言:多语言 软件类别:特效相机 软件大小:6.88 MB 适用固件:1.6及更高固件 内置广告:没有广告 适用平台:Android 延时摄影(Lapse It)是一款延时摄影工具,Time ...
用软件延时实现00-59秒单片机计时器:在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。
通过Redisson做的延时队列
matlab 利用Farrow结构设计分数延时滤波器_matlab farrow结构_分数 延时
OC- GCD延时-示例代码
1. 什么是延时队列?...2. 如何实现一个高效的延时队列? 3. DelayQueue的实现原理 4. RabbitMQ实现延时队列的基本原理 5. Redis实现延时队列的基本原理 6. 时间轮(Time Wheel) 7. 几种方案的对比
sbit?LED??=??P1^0;????...定义一个管脚(延时测试用) ...不同的数据类型延时有很大不同 //-----------------各种精确延时语句----------------------------------- ...延时10*i个机器周期 ...延时(j+1)*6+1个机器周期
本程序用于测试stc单片机C语言下延时时间,将测试的延时参数通过串口输出。程序可以测试如stc这类指令不固定的单片机的延时。代码C语言。 注:测试比较准,多次试验,每次输出值相差1