【发布时间】:2021-10-23 08:50:30
【问题描述】:
我正在做一个spring boot项目,任务是:我应该在创建后锁定产品的编辑能力15分钟,所以基本上如果用户创建一个产品,这个产品将被锁定15分钟编辑,之后它可以从数据库中更改或删除。 我的问题是:实现这一目标的最佳方法是什么:
1- 我应该在数据库表中添加一个名为 lastUpdate 的字段,然后检查是否超过 15 分钟的时间。
2- 我是否应该将所有新创建的产品保存在数组中并每 15 分钟清除一次该数组。
或者在性能和最佳实践方面有什么更好的方法?
我正在使用带有 JPA 和 mysql 的 springboot。
谢谢。
【问题讨论】:
-
您需要使用数据库。如果您在内存中执行此操作,那么该限制将不会在您的系统重新启动后继续存在,并且可能会使其难以扩展,因为您的服务实例需要将最近创建的产品与所有其他实例进行通信。
-
你想要的概念叫做乐观锁定,你可以使用HTTP的
If-Match或者If-Unmodified-Sinceheaders。
标签: java mysql spring spring-boot