PavelUstyugov
@PavelUstyugov
proger support

Как правильно организовать очередь для считывания сторонних сервисов?

суть в том, что каждый пользователь имеет в своих настройках доступы а разным соц сетям. Задача сервиса, где он зареган раз в день проходиться по этим соц сетям и вытаскивать нужные показатели, например, количество лайков к опр. записи.
Всё, что можно вытащить дают api функции к сервису.

Вопрос в том - как это правильнее организовать на сервере, ведь пользователей может быть 1000+ и больше.
Нужно организовать очередь, которая бы каждую ночь проходила бы по всем пользователям и ломилась бы в прикрепленные к ним аккунты сторонних сервисов и извлекала данные. Но сторонние сервисы (соц сети) могут забанить сервис, если он слишком часто будет обращаться туда.

Как стратегически правильно организовать очередь и jobs в laravel для этого и что использовать лучше?

Я использую Redis. Запускаю через cron Jobs каждую минуту чтоб та прошлась по пользователю. Потом следующая задача и так пока не выполнится весь цикл.

Может посоветуете инструмент для контроля исполнения заданий понадежнее? Может ведь быть такое, что та или иначя социальная сеть не возвратила результат. Нужно анализировать failed_jobs./

и есть смысл использовать несколько очередей redis? В общем как это решается?

Другой пример - более понятный. Обновлять баланс в кабинете пользователя через очередь. Если мы при открытии им сайта будем это делать, то возникнут тормоза. ему проще будет нажать "обновить" чтоб выполнить принудительную обновляловку. А по расписанию мы хотим поддерживать актуальную информацию в его кабинете. Она не настолько важна как его баланс, тем не менее позволит ему иметь быстрый вход в кабинет и избавить его от ожидания опрашивания всех связанных с ним аккаунтов социальных сетей.

Какие решения для этого?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
05 авг. 2020, в 21:55
20000 руб./за проект
05 авг. 2020, в 20:58
10000 руб./за проект
05 авг. 2020, в 20:21
10000 руб./за проект