【发布时间】:2014-01-24 13:21:37
【问题描述】:
有没有人尝试在 GAE 上实现悲观锁定?在我的项目中,有些任务必须是相互排斥的。我已经通过使用:
javax.persistence.EntityManager.find(entityClass, primaryKey, LockModeType.PESSIMISTIC_READ);
哪个使用 SELECT FOR UPDATE 查询数据库,哪个运行良好……只要只有一个应用程序实例正在处理请求。如果有更多实例,我的请求将部分并发处理。
我通过在我的互斥方法中添加 10 秒的睡眠对此进行了测试。一个实例在大约 60 秒内处理了 6 个请求,但对于 3 个实例,有时是 20 个,有时是 30 个,但从来没有 60 秒。
这是否意味着 CloudSQL 不会在 SQL 实例之间复制锁?有没有其他方法可以在表行上实现悲观锁定?
溴 马立克
【问题讨论】:
标签: spring google-app-engine jakarta-ee google-cloud-sql database-concurrency