首页 > 解决方案 > 当表用作队列时了解@Transactional

问题描述

我有一个如下所示的表格:

id | task | status
--------------------------
1  | xxxx | done
2  | xxxx | in_progress
3  | xxxx | in_progress
4  | xxxx | in_progress
5  | xxxx | todo

我们有内置在 spring-boot/JPA 中的处理程序。

第一个处理程序从上表中提取一些记录(在 todo 中)并将它们标记为 in_progress。

然后第二个处理程序从上表中提取更多记录(在 todo 中)并将它们标记为 in_progress。

即使第一个处理程序没有完成将它们标记为 in_progress,第二个处理程序也可能会提取待办事项记录。

我已经将 Transaction 用于全有或全无的方法。

@Transactional注释(或事务)会解决这样的问题吗?如果不是,可以使用 Spring/JPA(而不是使用外部队列)解决此问题的方法是什么。

标签: springjpatransactions

解决方案


推荐阅读