Лимиты и лучшие практики
Лимиты запросов, параллельные задачи, интервал опроса, повторы и сколько живут токены и результаты.
Лимиты#
| Что | Лимит | Ответ сверх лимита |
|---|---|---|
createTask на ключ | 30/с, всплески до 60 | ERROR_TOO_MUCH_REQUESTS (91) |
getTaskResult на ключ | 50/с | ERROR_TOO_MUCH_REQUESTS (91) |
| Все запросы с одного IP | 100/с, всплески до 200 | ERROR_TOO_MUCH_REQUESTS (91) |
| Задач в работе на ключ | 200 (настраивается для ключа) | ERROR_NO_SLOT_AVAILABLE (2) |
| Траты ключа | суточный и месячный лимиты, которые вы задали | ERROR_SPENDING_LIMIT (92) |
| Тело запроса | 1 МиБ | ERROR_TASK_ABSENT (22) |
| Ожидание воркера | 180 с | ERROR_RECAPTCHA_TIMEOUT (30), без списания |
| Хранение результата | 10 мин после готовности | ERROR_NO_SUCH_CAPCHA_ID (16) |
| Отчёты для возврата | 24 ч после решения | записываются без возврата |
| Доставка вебхука | 3 попытки по 5 с | — |
Это текущие значения платформы по умолчанию. Нужно больше — напишите в поддержку.
Интервал опроса#
- Опрашивайте каждую задачу раз в 2–3 секунды. Частый опрос не ускоряет решение.
- Останавливайтесь на
readyили на первой ошибке. - Через 5 минут прекращайте: к этому времени любая задача либо решена, либо завершилась ошибкой.
- Много задач одновременно? Используйте вебхуки вместо опроса.
Параллельность#
- Задачи независимы: запускайте их параллельно в пределах лимита ключа (по умолчанию 200).
- На
ERROR_NO_SLOT_AVAILABLEдождитесь завершения части задач и повторите через 1–2 секунды. - Держите
createTaskв пределах 30 в секунду на ключ: растягивайте всплески во времени. - Заводите отдельные ключи для разных проектов: лимиты, ограничения трат и статистика считаются по ключу.
Повторы#
| Ошибки | Что делать |
|---|---|
ERROR_TOO_MUCH_REQUESTS, ERROR_NO_SLOT_AVAILABLE, ERROR_INTERNAL, сетевые ошибки | повторить тот же запрос с растущей паузой: 1, 2, 4… секунды |
ERROR_CAPTCHA_UNSOLVABLE, ERROR_RECAPTCHA_TIMEOUT, ошибки прокси | создать новую задачу — неудачная бесплатна |
ERROR_KEY_DOES_NOT_EXIST, ERROR_ZERO_BALANCE, ERROR_TASK_ABSENT, ERROR_TASK_NOT_SUPPORTED, ERROR_IP_NOT_ALLOWED, ERROR_SPENDING_LIMIT | не повторять: сначала устранить причину |
Повторный getTaskResult всегда безопасен. Повторный createTask создаёт ещё одну задачу.
Время жизни токена#
- Токен reCAPTCHA действует около 2 минут и только один раз. Создавайте задачу непосредственно перед тем, как токен понадобится.
- API хранит результат 10 минут, но Google отклонит старый токен гораздо раньше.
- Сайт не принял токен? Сообщите об этом и верните деньги.
HTTP-таймауты#
Ставьте таймаут вызова API около 30 секунд. Любой ответ приходит сразу — решение никогда не держит запрос.