Я пытаюсь написать пользовательский Source
с использованием SDK Python Dataflow для чтения данных JSON параллельно с конечной точкой REST.HttpIO - Потребление внешних ресурсов в преобразовании потока данных
E.g. для заданного набора идентификаторов, мне нужно, чтобы извлечь данные из: https://foo.com/api/results/1 https://foo.com/api/results/2 ... https://foo.com/api/results/{maxID}
ключевых особенности мне нужно является мониторингом & ограничения скорости: несмотря на то, мне нужно параллелизм (либо поток/процесс на основе или с использованием асинхронной/сопрограммы) , Мне также нужно убедиться, что моя работа остается «вежливой» в отношении конечной точки API - эффективно избегая принудительного DDoS.
Использование psq, я должен быть в состоянии осуществить какой-то ограничение по скорости механизма, но тогда я бы потерять способность контролировать прогресс & ETA с использованием Dataflow Service Monitoring
Кажется, что, хотя они хорошо работают вместе , мониторинг не унифицирован между облачным документооборотом Google и облачным пабом Google/Sub (который использует мониторинг Google Stackdriver)
Как мне следует построить массово-параллельный рабочий поток HTTP-клиентов, который реализует ограничение скорости и имеет веб-интерфейс мониторинг?
Ограничение скорости каждой нити недостаточно, хотя, если я точно не знаю, сколько потоков выполняется в любой момент времени. Есть ли способ рассказать, сколько потоков выполняется во время выполнения конвейера? –
По умолчанию пакетный поток данных использует один поток для каждого рабочего (если вы используете виртуальные машины n1-standard-1). Это дает вам верхнюю границу по количеству потоков, активно читающих ваши конечные точки – danielm