google.api_core.exceptions.ServiceUnavailable: 503 Тайм-аут операции хранилища данных или данные были временно недоступны при использовании потока - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь перебрать все мои документы в 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.

EDIT

Поскольку моя проблема заключается в потоковой передаче документов, а не просто в подсчете, она отличается от найденного решения здесь .

1 Ответ

0 голосов
/ 02 июля 2019

Вдохновленный ответом здесь Я придумал общее решение. Однако мне интересно, если нет лучшего решения из коробки.

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
    else:
        if 'doc' in locals():
            yield from iterate(collection_name, batch_size, doc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...