redis升级问题

作业嵌套执行

问题描述

一个作业里执行另一个作业的时,当另一个作业失败时,导致父作业无法释放锁,父作业就一直处理处理中,无法新建作业

原因

子作业失败后,没有返回内容给父作业,导致父作业一直未确认结果,从而没有删除redis的键。作业的创建要根据同一类型去查找对应的键,如果存在,即等待。

解决

删除redis键,然后删除失败的作业,给redis的键设置过期时间,并调整这两个作业之间的依赖关系,异步作业

Kafka重复消费

问题描述

Kafka消费消息不进行ack确认,但锁释放后,要重新消费此topic消息

解决方案

kafka消费消息如果不进行ack确认,只能在Kafka重启时才会再次消费未被ack的消息。为此,解决方案是,判断topic有锁后,将消息存储到redis,并进行ack确认,但不进行业务操作;循环等待两秒后,再从redis拿到消息放到kafka队列

SQL性能优化的问题

问题描述