Install

PyPI

pip install qstash-python

Get QStash token

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

Usage

Synchronous Client

from upstash_qstash import Client
client = Client("<QSTASH_TOKEN>")

def handler():
  client.publish_json(...)

if __name__ == "__main__":
  main()

Asynchronous Client

import asyncio
from upstash_qstash.asyncio import Client

async def handler():
  await client.publish_json(...)

if __name__ == "__main__":
  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 attempts is 6 and the default backoff function is lambda retry_count: math.exp(retry_count) * 50.

You can also pass in False to disable retrying.

from upstash_qstash import Client
client = Client("<QSTASH_TOKEN>", {
  "attempts": 3,
  "backoff": lambda retry_count: (2 ** retry_count) * 20,
})