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