java - 在 spring 中防止 2 个不同线程的读锁定
问题描述
我有 3 种类型的用户,即 A、B 和 CI,正在读取 DB 列以获取最新的用户 ID,将其递增 1 并从存储库创建新的用户 ID。
Request lastCreatedIdUserWise = requestRepository.findTopByUserIdOrderByCreateDateDesc(user.getUserId());
Long requestSubscriptionId = 1L;
if (lastCreatedRequestForSubscription != null) {
// plus one the last created request id for subscription.
requestSubscriptionId += lastCreatedRequestForSubscription.getShipRequestIdBySubscription();
}
request.setRequestIdBySubscription(shipRequestSubscriptionId);//this saves a new request with new Id
当新请求到达时,我需要为每个用户加锁。当用户 A 有多个请求时,需要锁定此进程(检索最大 ID 并保存新 ID) 当有不同用户(即 A 或 B 或 C)的请求时,让此流程继续(无需锁定)。
解决方案
推荐阅读
- c# - ASP NET 如何在某些条件下显示部分页面?
- php - Laravel 中的 Ldap 绑定消息
- javascript - SOCKET.IO - console.log 正在打印所需的输出,但不是 io.emit
- c - ebpf bpf_get_socket_uid 错误:insn[0].code 0x85 的 relo 无效
- java - Java Reactor - if/else 链接(过滤)
- azure-web-app-service - Azure 应用服务计划概述显示与 Application Insights Live Metrics 不同的 CPU 使用率
- wordpress - Wordpress 中的连续(无限)计数器
- oracle - oracle sql中的ascii函数,用于非ascii值
- css - 如何在 wordpress 中将“容器”类更改为“容器流体”类
- mysql - 使用mysql工作台创建表时出错