一个进程不断查询数据库,看某个字段时候已经被修改,如果修改则做下一步工作;如果没有修改继续循环查询
另外一个进程由用户操作去更新数据库中的这个字段
问题是,在上面这样的场景中,查询数据库的进程根本看不到数据被修改
解决办法:
给第一个查询部分也加上事务管理的代码(一般情况下,对于修改,更新部分的代码才进行事务的管理,而这种查询代码都是直接查询的)
TasksDAO dao = new TasksDAO(); Transaction tran = dao.getSession().beginTransaction(); Tasks task = dao.findById(id); tran.commit(); dao.getSession().close();
本文探讨了在多进程环境中,一个进程不断查询数据库检查字段更新状态时遇到的数据延迟问题。通过为查询过程加入事务管理代码,有效解决了进程无法及时看到数据变更的问题。
1万+

被折叠的 条评论
为什么被折叠?



