Redis定时任务核心在于”@Schedule注解,Redis Zset,List数据结构,Redis管道技术

就从定时任务执行流程开始写起

1.前端用户发起定时任务创建定时任务任务,像定时任务模块发起定时任务请求并且携带必要参数

首先我们定时任务服务中中判断当前任务执行时间是否小于当前时间

如果小于当前系统时间(任务补偿机制。这种情况有可能出现在于由于微服务架构中一般定时任务被单独抽取成为一个模块模块通信可能基于消息队列,对于消息阻塞的情况可能会出现定时任务时间小于当前时间),直接存储到Redis的Zset集合中,并设置Score当前时间戳(只占用4个字节 时间从 1970-01-01 到 2060年),否则则存入数据库中。

2.数据库结构,对于定时任务我设计了两张表,一张表为taskInfo,另外一张为taskInfoLog表。日志表的作用在于记录任务是否完成,用于排查异常并且对未执行的任务进行补偿机制。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注