我使用带有 --high_replication --use_sqlite 的 Python 编写了这段代码:
def delete(self, id):
product = Product.get_by_id(long(id))
if product is None:
self.session.add_flash('Product could not be found', level='error')
self.redirect_to('products')
else:
product.key.delete()
self.session.add_flash('Product is deleted')
self.redirect_to('products')
删除后,我重定向到“产品”页面,该页面基本上是一个查询所有产品并显示它们的页面。
我发现的唯一一件事是它也显示已删除的记录。当我刷新“产品”页面时,记录就消失了。
其他人是否也面临这个问题,我能做些什么吗?
编辑1:
我只在本地看到这种行为,在生产基础设施上并非如此。我过去使用以下 jvm arg 为 Java sdk 解决了这个问题:
-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
Python sdk 是否有类似的东西来模拟您希望应用程序在本地看到的最终一致性的数量?
请参阅https://developers.google.com/appengine/docs/java/tools/devserver