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

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

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

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

Войти через центр авторизации
Похожие вопросы