Я пытаюсь постоянно сканировать большой объем информации с сайта, используя REST API, который они предоставляют. У меня есть следующие ограничения:
- Не выходить за пределы API (5 вызовов/сек)
- Использование полного лимита (совершение ровно 5 звонков в секунду, 5*60 звонков в минуту)
- Каждый вызов будет с разными параметрами (параметры будут извлекаться из БД или кеша в памяти)
- Вызовы будут выполняться из AWS EC2 (или GAE), а обработанные данные будут храниться в AWS RDS/DynamoDB.
На данный момент я просто использую запланированную задачу, которая запускает скрипт python каждую минуту, и скрипт делает 10-20 вызовов API-> обрабатывает ответ-> сохраняет данные в БД. Я хочу масштабировать эту процедуру (делать 5 * 60 = 300 вызовов в минуту) и сделать ее управляемой с помощью кода (отправлять новые задачи, легко приостанавливать/возобновлять их, отслеживать сбои, изменять частоту вызовов).
Мой вопрос: каковы наилучшие доступные инструменты для достижения этой цели? Любое предложение/руководство/ссылка приветствуется.
Я знаю названия некоторых сред очередей задач, таких как Celery/RabbitMQ/Redis, но я мало о них знаю. Однако я хочу изучить один или каждый из них, если это лучшие инструменты для решения моей проблемы, хочу услышать мнение ветеранов SO, прежде чем прыгать ☺
Также, пожалуйста, дайте мне знать, есть ли какой-либо другой сервис AWS, на который я должен обратить внимание. используйте (SQS или AWS Data Pipeline?), чтобы упростить любой шаг.