Redis定时任务的核心在于”@Schedule“注解,Redis Zset,List数据结构,Redis管道技术
1.前端用户发起定时任务创建定时任务任务,像定时任务模块发起定时任务请求并且携带必要参数
首先我们在定时任务服务中中判断当前任务执行时间是否小于当前时间,
如果小于当前系统时间(任务补偿机制。这种情况有可能出现在于由于微服务架构中一般定时任务被单独抽取成为一个模块,模块中通信可能基于消息队列,对于消息阻塞的情况可能会出现定时任务时间小于当前时间),直接存储到Redis的Zset集合中,并设置Score为当前时间戳(只占用4个字节 时间从 1970-01-01 到 2060年),否则则存入数据库中。
2.数据库表结构,对于定时任务我设计了两张表,一张表为taskInfo,另外一张为taskInfoLog表。日志表的作用在于记录任务是否完成,用于排查异常并且对未执行的任务进行补偿机制。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。