Asyn c обратных вызовов в firestore on_snapshot с использованием python - PullRequest
0 голосов
/ 28 января 2020

У меня есть приложение, которое прослушивает обновления из коллекции Firestore, используя google-cloud-firestore. Для каждого обновления мне нужно загрузить некоторые данные на FTP-сервер, что занимает много времени. Одновременный прием большого количества данных приводит к задержке, которая недопустима, и я полагаю, что ответом является асинхронный c обратный вызов (т.е. не ждите окончания моего обратного вызова, прежде чем продолжить), но это возможно.

Представьте себе скрипт, подобный этому

from google.cloud.firestore import Client
import time


def callback(col_snapshot, changes, read_time):
    print("Received updates")

    # mock FTP upload
    time.sleep(1)
    print("Finished handling the updates")

Client().collection('news').on_snapshot(callback)

while True:
    pass

Как я могу изменить этот код, чтобы он не ставил в очередь каждый обратный вызов.

Обновление

I ' мы создали запрос объекта в google-cloud-firestore

1 Ответ

0 голосов
/ 29 января 2020

Что вам нужно сделать, это использовать один из подходов, упомянутых в этом SO вопросе

Я предлагаю использовать многопроцессорный модуль в Python 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...