一.问题背景
1.遇到的问题
后台系统存储试题信息,同时使用了mysql和mongo,后台试题做了更改,会先写入到mysql,
同时mysql查询更新的试题信息,发送mq消息,更新mongo的信息。
出现的问题:
后台更改了试题信息,mysql库中存储的是更新后的信息;mongo中也确实走了mq消息,
但是从mysql中查询出来的信息,一直是未更改之前的,所以mongo中更新过去,一直是更新前
的消息,有点纳闷。
2.代码片段
// 更新试题信息方法
@Transactional
public void updateQuestion() {
//1.更新mysql
updateQuestionInfo();
//2.通过mq,查询mysql库中的试题信息,组装成mongo 结构,写入到mongo。
//2.1 写入mongo的过程中,会从mysql中查询一下现在的数据信息。
//3.通过mq,发送试题ID到ES查重复
//4.添加操作记录
}
@Transactional
public void updateQuestionInfo() {
//1.更新试题基础内容
//2.更新 试题对应的地区
//3.更新 试题对应的知识点
}
3.复现方法
执行完方法一,将断点打到 2.1处,然后未开始执行方法二,此时查询mysql 和 mongo中的数据,
发现 此时mysql中的数