Messages are removed from the database shortly after they’re delivered, so you
will not be able to retrieve a message after. This endpoint is intended to be used
for accessing messages that are in the process of being delivered/retried.
Retrieve a message
import { Client } from "@upstash/qstash";
const client = new Client({ token: "<QSTASH_TOKEN>" });
const messages = client.messages
const msg = await messages.get("msgId");
Cancel a message
import { Client } from "@upstash/qstash";
const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.messages.cancel("msgId");
Cancel multiple messages
import { Client } from "@upstash/qstash";
const client = new Client({ token: "<QSTASH_TOKEN>" });
// cancel two messages at once
await client.messages.cancel(["message-id-1", "message-id-2"])
// cancel all messages
let cancelled: number;
do {
const result = await client.messages.cancel({ all: true });
cancelled = result.cancelled;
} while (cancelled > 0);
Cancel messages with filters
import { Client } from "@upstash/qstash";
const client = new Client({ token: "<QSTASH_TOKEN>" });
// cancel messages matching a URL and label
let cancelled: number;
do {
const result = await client.messages.cancel({
filter: {
url: "https://example.com",
label: "my-label",
}
});
cancelled = result.cancelled;
} while (cancelled > 0);
client.messages.delete(), client.messages.deleteMany(), and client.messages.deleteAll()
are deprecated. Use client.messages.cancel() instead.