如果写入太频繁,我会在数据存储争用中阅读App Engine Wiki
1秒内超过5次。引入的Wiki使用“碎片”
解决方案”。我可以知道我们是否使用spring @transactional
这样做可以防止数据存储争用超时,因为
并发完成?
最佳答案
不,你不能那样做。无论您是否使用@transactional,它都不会使问题消失-事实上,您有一个对象需要继续写入。无论您使用哪种方法,竞争限制都将继续保持。
这个问题的答案实际上是在决定您要做什么,以及准确性对您来说有多重要。以一个简单的计数器为例,这是此问题的常见示例。如果您认为准确性非常重要,那么您将必须拥有一个列表,您可以选择顺序或随机选择的计数器并写入。如果此列表中有十个计数器,则每秒的写入次数甚至是事务写入次数将增加一倍。不过,您需要编写代码来选择要写入的计数器。
另一方面,如果您不需要太多的精度,则可以尝试非常频繁地写入内存缓存。当写入内存缓存或在其中增加计数器时,写入竞争限制要高得多。然后可以按设定的时间间隔写出并重置计数器。