Задать вопрос
@AlexLIn

Система очереди для парсинга данных с API?

Добрый день,
мне нужно парсить данные пользователя с API по плану и по его запросу. Тоесть когда он залогинился на сайт или нажал кнопку обновить.

Данные по крону должны например опрашиваться раз в час, и как только пользователь зашел на сайт и что то там делает, ставить приоритет в начало.

Также надо ограничить запросы к API на небольше 200 запросов в секунду.

Как и начем это можно сделать?
Почитал по RestMQ, но не знаю то ли это то что мне нужно или нет.

Спасибо,
буду рад вашим ответам.
  • Вопрос задан
  • 396 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Fxlr8
Судя по ограничениям, речь идет об API VK?

по первому вопросу: а почему бы просто не делать отдельный запрос к API и обновлять данные для конкретного пользователя, как только пользователь логинится на сайте?

по второму вопросу: если у вас выполняется обновление данных сразу для большого числа пользователей, то в некоторых API (вконтакте, например https://new.vk.com/dev/execute), есть хранимые процедуры. С их помощью вы сможете получать обновленные данные сразу для 100 пользователей за один запрос, это сильно сэкономит трафик и уменьшит шансы поймать лимит.

Опишите подробнее, что хотите сделать, быть может есть более элегантное решение
Ответ написан
Комментировать
Как вариант, использовать RabbitMQ для создания единой очереди запросов к API. В воркерах же ограничивать кол-во запросов в секунду. Язык не указан, но на php можно использовать https://github.com/bandwidth-throttle/token-bucket для этого.
Можно завести 2 очереди - одна для задач из крона, вторая только для приоритетных обновлений по требованию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы