Examples

DLQ

Get all messages with pagination using cursor

Since the DLQ can have a large number of messages, they are paginated. You can go through the results using the cursor.

import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });const all_messages = [];let cursor = null;while (true) {  const res = await client.dlq.listMessages({ cursor });  all_messages.push(...res.messages);  cursor = res.cursor;  if (!cursor) {    break;  }}

List messages with filters

import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// filter and paginate with top-level optionsconst res = await client.dlq.listMessages({  count: 10,  order: "latestFirst",  filter: { url: "https://example.com" }})// fetch specific DLQ messages by IDconst res2 = await client.dlq.listMessages({  dlqIds: ["dlq-id-1", "dlq-id-2"]})

Delete messages from the DLQ

import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// delete a single messageawait client.dlq.delete("dlqId");// delete multiple messagesawait client.dlq.delete(["dlq-id-1", "dlq-id-2"]);// delete with filterslet cursor: string | undefined;do {  const result = await client.dlq.delete({    filter: { url: "https://example.com", responseStatus: 500 },    cursor,  });  cursor = result.cursor;} while (cursor);// delete all DLQ messagesdo {  const result = await client.dlq.delete({ all: true, cursor });  cursor = result.cursor;} while (cursor);

client.dlq.deleteMany() is deprecated. Use client.dlq.delete() with an array of dlqIds or filters instead.

Retry messages from the DLQ

import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// retry a single messageawait client.dlq.retry("dlqId");// retry multiple messagesawait client.dlq.retry(["dlq-id-1", "dlq-id-2"]);// retry with filterslet cursor: string | undefined;do {  const result = await client.dlq.retry({    filter: { queueName: "my-queue" },    cursor,  });  cursor = result.cursor;} while (cursor);
Loading search…