Как в python ограничить доступ к ресурсу из разных процессов

Добрый день.
Имеется несколько параллельно запускаемых процессов на python.
Каждый процесс подключается к удаленному API и качает данные.
Проблема в том, что у API есть ограничение 10 запросов в секунду.

Можно запускать все в одном процессе, но тогда сильно увеличится время ожидания, т.к.
запрос может занимать от 0.1 до 10 секунд.
  • Вопрос задан
  • 2553 просмотра
Пригласить эксперта
Ответы на вопрос 2
@v_prom
читай ipc для python. или используй потоки, у них общие ресурсы.
Ответ написан
Комментировать
@leclecovich
Возьмите celery, настройте запуск таски по крону 1 раз в секунду. И в этой таске запускайте 10 тредов, которые обрабатывают респонсы. Помните о локах, если работаете в тредах с общим ресурсом. Запуск таски по крону гарантирует в таком случае старт задачи независимо от того, завершилась ли предыдущая такая же (в отличие от timedelta).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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