redis做消息队列,重复插入数据库问题
项目概述:
1.目前的项目是用redis做了一个消息队列,在listener监听到广播后,调用service函数,service函数会调用DAO插入数据库
问题概述:
1.查看服务器日志,一次请求,只有一个listener线程调用了1次service函数,但是数据库结果是插入了重复的2条数据
BUG检查:
1.如果不用消息队列,正常主函数访问service数据库只插入1条数据,合理
2.如果使用消息队列,listener调用service,数据库插入2条数据,不合理
3.如果使用消息队列,listener调用service,但数据库增加唯一性索引字段,数据库插入1条数据,另一次插入被回滚,勉强合理
4.在windows本机环境,启用redis,listener调用service,数据库插入1条,合理
1楼贴上日志与代码信息
可能猜想与疑问:
1.redis配置存在问题,但是查看服务器日志确实只有1条线程在活动