Install

PyPI

pip install qstash

Get QStash token

Follow the instructions here to get your QStash token and signing keys.

Usage

Synchronous Client

from qstash import QStash

client = QStash("<QSTASH_TOKEN>")
client.message.publish_json(...)

Asynchronous Client

import asyncio

from qstash import AsyncQStash


async def main():
    client = AsyncQStash("<QSTASH_TOKEN>")
    await client.message.publish_json(...)


asyncio.run(main())

RetryConfig

You can configure the retry policy of the client by passing the configuration to the client constructor.

Note: This isn for sending the request to QStash, not for the retry policy of QStash.

The default number of retries is 5 and the default backoff function is lambda retry_count: math.exp(retry_count) * 50.

You can also pass in False to disable retrying.

from qstash import QStash

client = QStash(
    "<QSTASH_TOKEN>",
    retry={
        "retries": 3,
        "backoff": lambda retry_count: (2**retry_count) * 20,
    },
)