Skip to content

Commit 6ffd3af

Browse files
committed
docs: add documentation for queue management SDK functions and API
Added documentation for the previously undocumented queue management functions in the SDK `queues` namespace: - queues.list() - List all queues with pagination - queues.retrieve() - Retrieve a queue by ID or type/name - queues.pause() - Pause a queue - queues.resume() - Resume a paused queue - queues.overrideConcurrencyLimit() - Override concurrency limit - queues.resetConcurrencyLimit() - Reset concurrency limit Changes: - Updated queue-concurrency.mdx with SDK function documentation - Added OpenAPI endpoints for all queue management APIs - Created API reference pages in docs/management/queues/ - Added Queues API group to docs.json navigation Slack thread: https://triggerdotdev.slack.com/archives/C061L2MHW93/p1771450098057739 https://claude.ai/code/session_01LyrXwxHCbejvi34fykifPP
1 parent 2825a20 commit 6ffd3af

File tree

8 files changed

+542
-0
lines changed

8 files changed

+542
-0
lines changed

docs/docs.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,16 @@
255255
"management/runs/update-metadata"
256256
]
257257
},
258+
{
259+
"group": "Queues API",
260+
"pages": [
261+
"management/queues/list",
262+
"management/queues/retrieve",
263+
"management/queues/pause",
264+
"management/queues/concurrency-override",
265+
"management/queues/concurrency-reset"
266+
]
267+
},
258268
{
259269
"group": "Schedules API",
260270
"pages": [
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "Override Concurrency Limit"
3+
openapi: "v3-openapi POST /api/v1/queues/{queueParam}/concurrency/override"
4+
---
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "Reset Concurrency Limit"
3+
openapi: "v3-openapi POST /api/v1/queues/{queueParam}/concurrency/reset"
4+
---

docs/management/queues/list.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "List Queues"
3+
openapi: "v3-openapi GET /api/v1/queues"
4+
---

docs/management/queues/pause.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "Pause or Resume Queue"
3+
openapi: "v3-openapi POST /api/v1/queues/{queueParam}/pause"
4+
---
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "Retrieve Queue"
3+
openapi: "v3-openapi GET /api/v1/queues/{queueParam}"
4+
---

docs/queue-concurrency.mdx

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,3 +226,129 @@ export const subtask = task({
226226
```
227227

228228
When the parent task reaches the `triggerAndWait` call, it checkpoints and transitions to the `WAITING` state, releasing its concurrency slot back to both its queue and the environment. Once the subtask completes, the parent task will resume and re-acquire a concurrency slot.
229+
230+
## Managing queues with the SDK
231+
232+
The SDK provides a `queues` namespace that allows you to manage queues programmatically. You can list, retrieve, pause, resume, and modify concurrency limits for queues.
233+
234+
<Note>
235+
Import from `@trigger.dev/sdk`:
236+
```ts
237+
import { queues } from "@trigger.dev/sdk";
238+
```
239+
</Note>
240+
241+
### Listing queues
242+
243+
You can list all queues in your environment with pagination support:
244+
245+
```ts
246+
import { queues } from "@trigger.dev/sdk";
247+
248+
// List all queues (returns paginated results)
249+
const allQueues = await queues.list();
250+
251+
// With pagination options
252+
const pagedQueues = await queues.list({
253+
page: 1,
254+
perPage: 20,
255+
});
256+
```
257+
258+
### Retrieving a queue
259+
260+
You can retrieve a specific queue by its ID, or by its type and name:
261+
262+
```ts
263+
import { queues } from "@trigger.dev/sdk";
264+
265+
// Using queue ID (starts with "queue_")
266+
const queueById = await queues.retrieve("queue_1234");
267+
268+
// Using type and name for a task's default queue
269+
const taskQueue = await queues.retrieve({
270+
type: "task",
271+
name: "my-task-id",
272+
});
273+
274+
// Using type and name for a custom queue
275+
const customQueue = await queues.retrieve({
276+
type: "custom",
277+
name: "my-custom-queue",
278+
});
279+
```
280+
281+
The queue object contains useful information about the queue state:
282+
283+
```ts
284+
{
285+
id: "queue_1234", // Queue ID
286+
name: "my-task-id", // Queue name
287+
type: "task", // "task" or "custom"
288+
running: 5, // Currently executing runs
289+
queued: 10, // Runs waiting to execute
290+
paused: false, // Whether the queue is paused
291+
concurrencyLimit: 10, // Current concurrency limit
292+
concurrency: {
293+
current: 10, // Effective limit
294+
base: 10, // Default limit from code
295+
override: null, // Override value (if set)
296+
overriddenAt: null, // When override was applied
297+
overriddenBy: null, // Who applied the override
298+
}
299+
}
300+
```
301+
302+
### Pausing and resuming queues
303+
304+
You can pause a queue to prevent new runs from starting. Runs that are currently executing will continue to completion.
305+
306+
```ts
307+
import { queues } from "@trigger.dev/sdk";
308+
309+
// Pause a queue using its ID
310+
await queues.pause("queue_1234");
311+
312+
// Or using type and name
313+
await queues.pause({ type: "task", name: "my-task-id" });
314+
await queues.pause({ type: "custom", name: "my-custom-queue" });
315+
```
316+
317+
To resume a paused queue and allow new runs to start:
318+
319+
```ts
320+
import { queues } from "@trigger.dev/sdk";
321+
322+
// Resume a queue using its ID
323+
await queues.resume("queue_1234");
324+
325+
// Or using type and name
326+
await queues.resume({ type: "task", name: "my-task-id" });
327+
await queues.resume({ type: "custom", name: "my-custom-queue" });
328+
```
329+
330+
### Overriding concurrency limits
331+
332+
You can temporarily override a queue's concurrency limit. This is useful for scaling up or down based on demand:
333+
334+
```ts
335+
import { queues } from "@trigger.dev/sdk";
336+
337+
// Set concurrency limit to 5
338+
await queues.overrideConcurrencyLimit("queue_1234", 5);
339+
340+
// Or using type and name
341+
await queues.overrideConcurrencyLimit({ type: "task", name: "my-task-id" }, 20);
342+
```
343+
344+
To reset the concurrency limit back to the base value defined in your code:
345+
346+
```ts
347+
import { queues } from "@trigger.dev/sdk";
348+
349+
// Reset concurrency limit to the base value
350+
await queues.resetConcurrencyLimit("queue_1234");
351+
352+
// Or using type and name
353+
await queues.resetConcurrencyLimit({ type: "task", name: "my-task-id" });
354+
```

0 commit comments

Comments
 (0)