Skip to the content.

Delay Queue Job Design

整体结构

整个延迟队列由4个部分组成:

基本概念

消息状态转换

每个Job只会处于某一个状态下:

下面是四个状态的转换示意图:

Job State Flow

消息存储

在选择存储介质之前,先来确定下具体的数据结构:

能够同时满足以上需求的,非redis莫属了。 bucket的数据结构就是redis的zset,将其分为多个bucket是为了提高扫描速度,降低消息延迟。

reference