Короткие ответы
Два работника означают два запроса в секунду?
Нет. Скорость завершения зависит от длительности работы, а браузерная задача может запускать дополнительные ресурсы. Семафор ограничивает занятые места, но не задаёт отдельный предел стартов в секунду.
Число соединений равно числу sticky-сессий?
Нет. Имена сессий описывают группировку маршрутов; клиент может переиспользовать соединения или открывать несколько. Это отдельные счётчики и ограничения.
Можно купить больше ГБ ради большего лимита?
Объём трафика и ограничения соединений или сессий — разные условия. Сверьте допустимую параллельность по текущим условиям продукта; если она не указана, уточните в поддержке до запуска. Не выводите её из стоимости заказа или количества работников.
Что делать после 429 или сообщения о лимите?
Приостановите новые задачи затронутой области, прочитайте ответ и состояние аккаунта, затем уменьшите нагрузку. Повторяйте только безопасные операции в конечном бюджете; дополнительные работники не исправляют авторизацию или TLS.
Дайте каждому счётчику своё имя
| Величина | Что считается | Где управляется |
|---|---|---|
| Работники | Задания, занимающие слоты | Очередь или семафор приложения |
| Частота стартов | Новые запросы за интервал | Отдельная политика темпа для назначения |
| Открытые соединения | Удерживаемые клиентом подключения | Пул клиента и условия аккаунта |
| Имена сессий | Логические идентичности маршрута | Распределение сессий и текущий лимит |
Python Semaphore управляет местами. Быстрый ответ освобождает место, которое может использоваться много раз за секунду. Поэтому конечная очередь и ограничение работников не заменяют правило частоты для назначения.
Измерьте полезную разрешённую работу
- Зафиксируйте разрешённые действия и ограничения назначения до запуска.
- Выполните небольшой образец без автоматических повторов, с пределами времени и ответа.
- Запишите начало и завершение, попытки, полезные результаты, ошибки и байты; выделите ресурсы браузера.
- Проверьте настройки пула клиента; допустимые соединения и сессии уточните по текущим условиям или в поддержке.
- Выберите небольшую начальную параллельность и отдельный предел стартов, затем повторите тот же образец.
Быстрый ответ с неправильным содержимым не является успехом. Для проверки рекламы или разрешённого мониторинга сначала определите ожидаемый результат. Расчёт ГБ отдельно учитывает попытки и объём; здесь решается вопрос занятых ресурсов.
Используйте расчёт как ориентир, не обещание
Вымышленный пример: назначение разрешает не более четырёх стартов в секунду, а среднее время занятости одного запроса —1,5 секунды. Для устойчивого темпа средняя работа в полёте оценивалась бы как 4 × 1,5 = 6 запросов. Это средняя оценка, не максимум и не разрешение запускать шесть соединений на любом сайте.
| Показатель | Значение | Граница вывода |
|---|---|---|
| Разрешённый темп | 4 старта/секунду | Нужен самостоятельный ограничитель |
| Средняя занятость | 1,5 секунды | Относится к тому же сценарию |
| Средняя работа в полёте | 6 запросов | Не верхний предел пика |
| Начальный тест | 2 работника | Меньшее пробное значение, не лимит сервиса |
Два постоянно занятых работника с одним запросом и такой длительностью дали бы грубую среднюю способность 2 / 1,5 ≈ 1,33 запроса в секунду. Она ниже разрешённого потолка, и исчерпывать его не требуется. Изменчивость ответов, очереди, тела и переиспользование соединений меняют фактическую картину.
При замедлении запросы занимают места дольше. Не добавляйте работники автоматически, чтобы вернуть старый темп: заново измерьте тот же процесс и пределы. Для браузера навигация может запускать несколько запросов, поэтому ограничение числа страниц не является ограничением стартов ресурсов.
Настройте клиент, сохраняя отдельные политики
HTTPX Limits различает общий пул и удерживаемые keep-alive-соединения. PoolTimeout может означать ожидание места клиента: сначала исследуйте очередь, а не увеличивайте нагрузку.
Двойка — вымышленный локальный предел. Пример не отправляет запросы, не задаёт разрешённую частоту и не устанавливает лимит аккаунта.
import httpx
limits = httpx.Limits(
max_connections=2,
max_keepalive_connections=2,
)
timeout = httpx.Timeout(10.0, pool=2.0)
# Configuration only: no requests are sent by this example.
# A real worker also needs destination pacing, a bounded queue,
# a whole-task deadline, response limits and correct proxy settings.
with httpx.Client(limits=limits, timeout=timeout) as client:
pass
Для подключения шлюза используйте HTTPX. Связанные шаги соотносите с собственной сессией приложения и режимом маршрута. Ротация не очищает cookies и не обещает отдельный адрес каждому работнику.
После ограничения уменьшайте затронутую нагрузку
Несколько приложений одной организации используют общие условия и баланс. Если допустимая параллельность не указана в условиях, уточните её в поддержке до расширения. Не подставляйте универсальное число. При 429 учитывайте Retry-After и конкретный код; отдельное руководство разделяет ответ назначения и ограничения API или шлюза.
Сохраните незавершённость задачи, пока её результат неизвестен. Для операций с побочными эффектами новый запрос может повторить действие. Ни большее число имён, ни дополнительная покупка не заменяют выяснение исхода.
Планируйте доступ отдельно от объёма
После полезного образца оцените весь трафик и сверьте текущую цену. ГБ общих пулов не резервируют устройство или постоянный адрес на каждого работника. Если нужна аренда порта, сравните её условия отдельно. Редакция от 2 ноября 2026 года содержит учебную арифметику, не проверку мощности шлюза или нагрузочный тест.
Допустимое использование
Выполняйте только разрешённые действия в пределах правил назначения. Сохраняйте учётные данные и личное содержимое в тайне; соблюдайте политику допустимого использования · English.