У меня есть скрипт для сбора данных для разных хэштегов социальных сетей. В настоящее время скрипт выполняет несколько последовательных HTTP-запросов, форматирует данные во фрейм данных Pandas и сохраняет их в CSV. Для очень популярных хэштегов требуется несколько часов.
Мне нужно запустить эту программу для 1000+ отдельных хэштегов. Чтобы сэкономить время, я хотел бы запускать несколько экземпляров одновременно, скажем, по 50–100 экземпляров за раз, каждый из которых собирает разные хэштеги.
Предполагая, что я изменяю часть CSV для использования вместо этого службы облачного хранилища, что еще мне нужно сделать, чтобы выполнить то, что я описываю? Если у меня есть список всех нужных мне хэштегов, как мне настроить AWS lambda или Google Functions для их одновременного выполнения, чтобы 50-100 экземпляров всегда работали, пока не будут собраны все данные?
В AWS я бы использовал Шаговые функции с динамическим параллелизмом чтобы добиться этого.
Первая лямбда функция будет выдать список хэштегов что вы хотите ползать.
Затем Вторая лямбда будет вызываться много раз параллельно конечным автоматом пошаговых функций, чтобы обработать каждый из хэштегов.
Конфиги (например, хэштеги) передаются как объекты JSON.
Надеюсь, это поможет :)
Если для запуска вашего скрипта может потребоваться несколько часов, я думаю, что облачные функции (GCP) вам не подходят. Облачная функция может работать максимум 9 минут, значение по умолчанию - 60 секунд. По истечении этого времени функции отключены.
Если вы хотите сохранить экземпляр в течение нескольких часов, как вы упомянули, лучшим вариантом может быть использование Compute Engine или App Engine Standard с Базовое масштабирование что позволяет обрабатывать HTTP-запросы до 24 часов.