Skip to content

Commit f68d314

Browse files
browser rendering limits (#19566)
* browser rendering limits * Update src/content/changelogs-next/2025-01-30-browser-rendering-more-instances.mdx Co-authored-by: Brendan Irvine-Broque <[email protected]> * Update src/content/docs/browser-rendering/platform/limits.mdx * Apply suggestions from code review * Update src/content/docs/browser-rendering/platform/limits.mdx * Update src/content/changelogs-next/2025-01-30-browser-rendering-more-instances.mdx --------- Co-authored-by: Brendan Irvine-Broque <[email protected]>
1 parent 33911b5 commit f68d314

File tree

2 files changed

+60
-4
lines changed

2 files changed

+60
-4
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: More concurrent Br
3+
description: Browser Rendering now supports more concurrent browser sessions.
4+
products:
5+
- workers
6+
- browser-rendering
7+
date: 2025-01-30T13:00:00Z
8+
---
9+
10+
import { Render, PackageManagers, TypeScriptExample } from "~/components"
11+
12+
[Browser Rendering](/browser-rendering/) now supports 10 concurrent browser instances per account _and_ 10 new instances per minute, up from the previous limits of 2.
13+
14+
This allows you to launch more browser tasks from [Cloudflare Workers](/workers).
15+
16+
To manage concurrent browser sessions, you can use [Queues](/queues/) or [Workflows](/workflows/):
17+
18+
<TypeScriptExample filename="index.ts">
19+
20+
```ts
21+
interface QueueMessage {
22+
url: string;
23+
waitUntil: number;
24+
}
25+
26+
export interface Env {
27+
BROWSER_QUEUE: Queue<QueueMessage>;
28+
BROWSER: Fetcher;
29+
}
30+
31+
export default {
32+
async queue(batch: MessageBatch<QueueMessage>, env: Env): Promise<void> {
33+
for (const message of batch.messages) {
34+
const browser = await puppeteer.launch(env.BROWSER);
35+
const page = await browser.newPage();
36+
37+
try {
38+
await page.goto(message.url, {
39+
waitUntil: message.waitUntil
40+
});
41+
// Process page...
42+
} finally {
43+
await browser.close();
44+
}
45+
}
46+
}
47+
};
48+
```
49+
</TypeScriptExample>

src/content/docs/browser-rendering/platform/limits.mdx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@ sidebar:
55
order: 30
66
---
77

8-
- 10 new browsers per minute per account.
9-
- 10 concurrent browsers per account.
10-
- By default, a browser instance gets killed if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the `keep_alive` [option](/browser-rendering/platform/puppeteer/#keep-alive).
11-
- `browser.close()` releases the browser instance.
8+
import { Render } from "~/components"
9+
10+
| Feature | Limit |
11+
| --------------------------------------------- | ------------------------------------------------------------- |
12+
| Concurrent browsers per account | 10 per account [^1] |
13+
| New browser instances per minute | 10 per minute [^1] |
14+
| Browser timeout | 60 seconds [^1][^2] |
15+
16+
[^1]: Contact our team to request increases to this limit.
17+
[^2]: By default, a browser instance gets killed if it does not get any [devtools](https://chromedevtools.github.io/devtools-protocol/) command for 60 seconds, freeing one instance. Users can optionally increase this by using the `keep_alive` [option](/browser-rendering/platform/puppeteer/#keep-alive). `browser.close()` releases the browser instance.
18+
close()` releases the browser instance.

0 commit comments

Comments
 (0)