Pin Configuration for Flow Control Key
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin \
--header 'Authorization: Bearer <token>'import requests
url = "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": "<string>"
}Flow Control
Pin Configuration for Flow Control Key
Pins a processing configuration for a specific flow-control key.
POST
/
v2
/
flowControl
/
{flowControlKey}
/
pin
Pin Configuration for Flow Control Key
curl --request POST \
--url https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin \
--header 'Authorization: Bearer <token>'import requests
url = "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://qstash-{region}.upstash.io/v2/flowControl/{flowControlKey}/pin")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": "<string>"
}Normally, each message sent to QStash includes a flow-control configuration for the corresponding flow-control key.
The processing configuration is updated based on configurations provided by incoming messages.
This means that if you want to change the configuration, you typically need to update it in your code and wait until a new message with the updated configuration is sent.
By pinning a configuration, you can enforce a fixed configuration for a flow-control key.
While pinned, the system ignores configurations provided by incoming messages and continues using the pinned configuration until it is explicitly unpinned.
This allows you to increase or decrease processing throughput without requiring code changes or waiting for new messages with updated configurations.
For example, you can temporarily increase the processing speed to clear a backlog of pending messages, or decrease it when a downstream dependency is experiencing issues.
Pinning a configuration resets the current state (rate count and period) of the flow-control key.
Authorizations
bearerAuthbearerAuthQuery
QStash authentication token
Path Parameters
The flow-control key for which the configuration will be pinned.
Query Parameters
The parallelism value to apply to the flow-control key.
The rate value to apply to the flow-control key.
The period value to apply to the flow-control key, in seconds.
Response
The flow-control key configuration has been pinned.
Was this page helpful?