任意时间延时消息原理讲解:设计与实现
qmq 示例代码-github
【原创】分布式之延时任务方案解析
时间轮上不存全部数据,存储部分快要执行的数据。
其他数据存储在各个队列中,比如每个小时一个队列。时间轮就是一个小时的数据,或者更小。平衡好时间轮内存占用与遍历时间轮的消耗。
在时间轮的数据要从队列中删掉,保持数据集不会一直变大。
为了防止断电,要保存执行完的任务偏移量,可以恢复执行后续任务。