Имеется постоянно пополняющаяся таблица подписчиков (на данный момент более 8000 записей).
Каждые 5 минут выполняется CRON-задача и запускается процесс обработки записей за последний месяц (обычно не более 1000 записей).
Процесс обработки включает в себя обращение к API стороннего сервиса для получения статуса подписчика (подписан или ожидается подтверждение) и, при наличии статуса "активен" - статус в моей таблице тоже обновляется отдельным запросом. Так же, при отсутствии юзера в списке сервиса - повторное добавление через запрос к API этого сервиса.
Вопрос - как оптимизировать данный процесс?
Повторю данные:
~ 1000 записей из БД (один запрос на получение). Цикл (в моем случае foreach) для этого массива. Каждая итерация цикла - обращение к стороннему API, а также обновление статуса подписчика в моей базе (1 запрос), если он "активен" или повторный запрос к API сервиса.
Библиотека Requests позволяет делать параллельные запросы. Делайте по 10 параллельных запросов к API. Пока они обрабатываются - выполняются следующие 10.
С количеством запросов можно поэкспериментировать, зависит от мощностей хостера/vps.