我有一项需要以下操作:
理想情况下,如果在处理#2的过程中已经有另一个工作人员,我甚至不希望程序开始执行#2。
这意味着get()
调用将阻塞,直到没有其他人正在处理#2。
[我对docs的理解并尝试了数据存储区的Transaction
,是直到commit()
调用之后,才会进行任何争用检查。只有这样,才会引发错误并发生回滚。但这意味着每个工人都要执行昂贵的步骤#2,然后才意识到外面已经有人在做这项工作。
如果其他人有使用该键的交易,是否有办法让get()
调用阻塞?
在this article中,他们利用了内存缓存。但是,我希望尽可能将其保留在Cloud Datastore中,以最大程度地减少其他基础架构。
未阻止读取,仅阻止了写入操作。
您对此有2个解决方案: