python - google.api_core.exceptions.ServiceUnavailable: 503 数据存储操作超时,或者使用流时数据暂时不可用
问题描述
我正在尝试遍历 Firestore 中的所有文档。我在 Python 中运行以下命令
from google.cloud.firestore import Client
client = Client()
docs = list()
for es in client.collection('exchange-statements').stream():
docs.append(es)
但它会产生以下错误
google.api_core.exceptions.ServiceUnavailable: 503 The datastore operation timed out, or the data was temporarily unavailable.
我正在使用google-cloud-firestore v1.2.0
.
编辑
由于我的问题是关于流式文档而不仅仅是计数,因此它与此处找到的解决方案不同。
解决方案
受此处答案的启发,我想出了一个通用的解决方案。但是我想知道是否没有更好的开箱即用解决方案。
def iterate(collection_name, batch_size=5000, cursor=None):
query = client.collection(collection_name).limit(batch_size).order_by('__name__')
if cursor:
query = query.start_after(cursor)
for doc in query.stream():
yield doc
if 'doc' in locals():
yield from iterate(collection_name, batch_size, doc)
推荐阅读
- angular - 如何在组件角度4内单独刷新div
- node.js - 增加堆大小无效
- c# - 如何使用 EF 初始化后添加到数据库中的视图?
- java - Spring Cloud Streams 将数据有条件地转发到 Kafka 主题
- unity3d - 在 Unity 中创建深度图像的问题
- angularjs - AngularJS在变量前后添加自动空格
- linux - 进程管理的 Makefile 错误
- javascript - 自动填充图片网址
- angular - NativeScript 刷新后拉到 ActionBar 后面的刷新页面 | nativescript-pulltorefresh
- r - R闪亮:可以通过条件面板选择输入