【发布时间】:2020-04-06 20:23:06
【问题描述】:
我有一个公开 REST API 的 Spring Boot 应用程序,并且还计划添加一个 Spring Boot 计划任务。
task 的目的是从 momgodb 数据存储中获取一些待处理的“保留”并进行处理。
现在的问题是,当多个服务实例运行时,所有节点很可能会获取相同的“预订记录”。
我正在为此查看 mongodb 锁,并正在检查 mongodb 的 updateAndModidy / 事务(在 4.x 中)。
也有可能单独锁定表只有一条记录,在我锁定记录并执行操作和解锁记录。但是这种方式一次只有一个节点在工作,如果解锁操作失败,也会产生清理锁的开销。
所以问题是关于运行和调度上述任务的多个服务实例。如果有人能指出围绕该主题的最佳实践或解决方案,无论技术如何(spring boot / mongodb 等),我将不胜感激。
【问题讨论】:
标签: java spring mongodb spring-boot scheduling