Examples
Flow Control
Get a single flow control key
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });const info = await client.flowControl.get("USER_GIVEN_KEY");console.log(info.flowControlKey);console.log(info.waitListSize);console.log(info.parallelismMax);console.log(info.parallelismCount);console.log(info.rateMax);console.log(info.rateCount);console.log(info.ratePeriod);console.log(info.ratePeriodStart);console.log(info.isPaused);console.log(info.isPinnedParallelism);console.log(info.isPinnedRate);Get global parallelism
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });const info = await client.flowControl.getGlobalParallelism();console.log(info.parallelismMax);console.log(info.parallelismCount);Pause and resume
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// Pause delivery for a flow control keyawait client.flowControl.pause("USER_GIVEN_KEY");const info = await client.flowControl.get("USER_GIVEN_KEY");console.log(info.isPaused); // true// Resume deliveryawait client.flowControl.resume("USER_GIVEN_KEY");Pin a fixed configuration
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// Pin parallelism and rate so incoming messages cannot override themawait client.flowControl.pin("USER_GIVEN_KEY", { parallelism: 3, rate: 20, period: 120, // seconds});const info = await client.flowControl.get("USER_GIVEN_KEY");console.log(info.isPinnedParallelism); // trueconsole.log(info.isPinnedRate); // trueUnpin configuration
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// Unpin parallelism and rate (can unpin independently)await client.flowControl.unpin("USER_GIVEN_KEY", { parallelism: true, rate: true,});Reset rate
import { Client } from "@upstash/qstash";const client = new Client({ token: "<QSTASH_TOKEN>" });// Reset rate count and end the current rate periodawait client.flowControl.resetRate("USER_GIVEN_KEY");