← Browser Run / browser-run
Лимиты
Ограничения Browser Run зависят от вашего Тарифный план Cloudflare Workers.
Сведения о тарификации см. в Тарифы Browser Run.
Workers Free
| Возможность | Лимит |
|---|---|
| Часы браузера | 10 минут в день |
| Параллельные браузеры на аккаунт (только для Browser Sessions) 1 | 3 на аккаунт |
| Новые экземпляры браузера (только для Browser Sessions) | 1 раз в 20 секунд |
| Тайм-аут браузера | 60 секунд 2 |
| Всего запросов (только Quick Actions) 3 | 1 раз в 10 секунд |
/crawl эндпоинт ограничивает
/crawl конечная точка действуют дополнительные ограничения для пользователей плана Workers Free:
| Возможность | Лимит |
|---|---|
| Задания сканирования в день | 5 в день |
| Максимум страниц за одно сканирование | 100 страниц |
Workers Paid
| Возможность | Лимит |
|---|---|
| Часы браузера | Без ограничений (Смотреть цены) |
| Параллельные браузеры на аккаунт (только для Browser Sessions) 1 | 200 на аккаунт (Смотреть цены) |
| Новые экземпляры браузера в секунду (только для Browser Sessions) | 3 в секунду |
| Тайм-аут браузера | 60 секунд 2 |
| Запросов в секунду (только Quick Actions) 3 | 30 в секунду |
Часто задаваемые вопросы
Как управлять параллелизмом и изоляцией сессий в Browser Run?
Если вы столкнулись с ограничением параллелизма ограничения, или хотите оптимизировать параллельное использование браузера, вот несколько советов:
- Оптимизация с помощью вкладок или общих браузеров: вместо запуска нового браузера для каждой задачи рассмотрите открытие нескольких вкладок или выполнение нескольких действий в рамках одного экземпляра браузера.
- Повторное использование сеансов: вы можете оптимизировать конфигурацию и сократить время запуска, повторно используя сеансы вместо запуска нового браузера каждый раз. Если для вас важна изоляция тестов (например, для тестов, зависящих от чистого окружения), рекомендуем использовать контексты браузера в режиме инкогнито ↗, которые изолируют файлы cookie и кэш от других сессий.
Если вы всё ещё сталкиваетесь с ограничением параллелизма, вы можете запросите более высокий лимит ↗.
Можно ли увеличить тайм-аут браузера?
По умолчанию экземпляр браузера завершает работу по тайм-ауту через 60 секунд бездействия. Если вы хотите держать браузер открытым дольше, вы можете использовать keep_alive параметр, который позволяет увеличить тайм-аут до 10 минут.
Существует ли максимальная продолжительность сеанса?
Фиксированного максимального времени жизни сеанса браузера не существует, пока сеанс остаётся активным. По умолчанию Browser Run закрывает сеансы после одной минуты бездействия, чтобы предотвратить непреднамеренное использование. Вы можете увеличьте этот тайм-аут бездействия до 10 минут.
Если сессии должны оставаться открытыми дольше, поддерживайте их активность, отправляя команду хотя бы раз в течение настроенного окна бездействия (например, каждые 10 минут). Сессии также закрываются при выпуске нового релиза Browser Run.
Я перешёл с плана Workers Free, но всё ещё упираюсь в лимит 10 минут в день. Что делать?
Если вы недавно перешли на план Workers Paid но всё равно сталкиваетесь с ограничением в 10 минут в день, повторно разверните Worker, чтобы использование корректно учитывалось в рамках нового тарифного плана.
Почему расход браузерных ресурсов оказался выше ожидаемого?
Если вы упираетесь в дневной лимит или расход выше ожидаемого, чаще всего причина в том, что сессии браузера закрываются некорректно. Когда сессия браузера не закрывается явно с помощью browser.close(), она остаётся открытой и продолжает расходовать время браузера, пока не истечёт тайм-аут (60 секунд по умолчанию или до 10 минут, если вы используете keep_alive опцию).
Чтобы минимизировать использование:
- Всегда вызывайте
browser.close()когда вы закончили работу с сессией браузера. - Оберните код браузера в
try/finallyблок, чтобы обеспечитьbrowser.close()вызывается, даже если произошла ошибка. - Используйте
puppeteer.history()илиplaywright.history()чтобы просмотреть последние сессии и найти те, которые закрылись из-заBrowserIdleвместоNormalClosure. Сессии, закрывшиеся из-за тайм-аута простоя, означают, что браузер не был закрыт явно.
Отслеживать использование и просматривать причины закрытия сессий можно в дашборде Cloudflare на Browser Run страница:
Перейдите в Browser Run ↗См. Причины закрытия браузера, где это описано подробнее.
Устранение неполадок
Ошибка: 429 Too many requests
Если отправить слишком много запросов за короткий промежуток времени, Browser Run ответит кодом состояния HTTP 429 Too many requests. Лимиты запросов для вашего аккаунта можно посмотреть в Workers Free и Workers Paid разделах выше.
Пример ниже показывает, как корректно обрабатывать превышение лимита запросов, считывая Retry-After значение и повторить запрос после этой задержки.
const response = await fetch('https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/content', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <your-token>',
},
body: JSON.stringify({ url: 'https://example.com' })
});
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After');
console.log(`Rate limited. Waiting ${retryAfter} seconds...`);
await new Promise(resolve => setTimeout(resolve, retryAfter \* 1000));
// Retry the request
const retryResponse = await fetch(/* same request as above */);
}import puppeteer from "@cloudflare/puppeteer";
try {
const browser = await puppeteer.launch(env.MYBROWSER);
const page = await browser.newPage();
await page.goto("https://example.com");
const content = await page.content();
await browser.close();
} catch (error) {
if (error.status === 429) {
const retryAfter = error.headers.get("Retry-After");
console.log(
`Browser instance limit reached. Waiting ${retryAfter} seconds...`,
);
await new Promise((resolve) => setTimeout(resolve, retryAfter * 1000));
// Retry launching browser
const browser = await puppeteer.launch(env.MYBROWSER);
}
}Ошибка: 429 Browser time limit exceeded for today
Это Error processing the request: Unable to create new browser: code: 429: message: Browser time limit exceeded for today ошибка означает, что вы достигли дневного лимита браузеров на тарифном плане Workers Free. Для аккаунтов с тарифом Workers Free действуют ограничения до 10 минут использования Browser Run в день. При превышении этого лимита вы получите 429 ошибку до следующего дня по UTC.
Вы можете увеличьте свои лимиты перейдя на тарифный план Workers Paid на Тарифы Workers странице панели управления Cloudflare:
Перейдите в Тарифы Workers ↗Если вы недавно перешли на новый план, но всё ещё сталкиваетесь с лимитом 10 минут в день, повторно разверните Worker, чтобы использование корректно привязалось к новому плану.
Сноски
-
Браузеры закрываются после завершения задачи или через шестьдесят секунд бездействия (если вы не увеличьте тайм-аут браузера). Поэтому на практике многим рабочим процессам не требуется большое количество одновременных браузеров. ↩ ↩2
-
По умолчанию браузер завершает работу по тайм-ауту через 60 секунд бездействия. Вы можете увеличить это время до 10 минут с помощью
keep_aliveпараметр. Вызовитеbrowser.close()чтобы немедленно освободить экземпляр браузера. ↩ ↩2 -
Если вы превысите лимит запросов в секунду, вы получите
429ответ. См. устранение неполадок429 Too many requestsошибка. ↩ ↩2