Skip to main content

An Amazon SQS broker for Dramatiq.

Project description

dramatiq_sqs

[!WARNING]
The project is under active development. There will be breaking changes before v1.0.0. Please make sure to pin the version when using this for anything important.

A Dramatiq broker that can be used with Amazon SQS.

This backend has a number of limitations compared to the built-in Redis and RMQ backends:

  • the max amount of time messages can be delayed by is 15 minutes,
  • messages can be at most 1MiB large by default (configurable via max_message_size) and
  • messages must be processed within 12 hours of being pulled, otherwise they will be redelivered.

The backend uses boto3 under the hood. For details on how authorization works, check out its docs.

Installation

pip install dramatiq_sqs

Usage

import dramatiq

from dramatiq.middleware import AgeLimit, TimeLimit, Callbacks, Pipelines, Prometheus, Retries
from dramatiq_sqs import SQSBroker

broker = SQSBroker(
    namespace="dramatiq_sqs_tests",
    middleware=[
        Prometheus(),
        AgeLimit(),
        TimeLimit(),
        Callbacks(),
        Pipelines(),
        Retries(min_backoff=1000, max_backoff=900000, max_retries=96),
    ],
)
dramatiq.set_broker(broker)

Usage with ElasticMQ

broker = SQSBroker(
    # ...
    endpoint_url="http://127.0.0.1:9324",
)

Example IAM Policy

Here are the IAM permissions needed by Dramatiq:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:CreateQueue",
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:DeleteMessageBatch",
                "sqs:SendMessage",
                "sqs:SendMessageBatch"
            ],
            "Resource": ["*"]
        }
    ]
}

License

dramatiq_sqs is licensed under Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dramatiq_sqs-0.4.4.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dramatiq_sqs-0.4.4-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file dramatiq_sqs-0.4.4.tar.gz.

File metadata

  • Download URL: dramatiq_sqs-0.4.4.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dramatiq_sqs-0.4.4.tar.gz
Algorithm Hash digest
SHA256 518f3abb8a081b610d96c76eb1c571d9dca4724a776114e2bb11b5f0e89795af
MD5 30004b4da0c36db7548d668d3d3481a0
BLAKE2b-256 b23a7f7b0fa92c23c3e7a0928a9b74d853143fd2fd9d5357cb66528eeb8ecb91

See more details on using hashes here.

File details

Details for the file dramatiq_sqs-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: dramatiq_sqs-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dramatiq_sqs-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0c9b9f03e0850bc1702f349c8ba68477087e024a167231f1ae148dac7ce1ed3b
MD5 6cb94253e86c757701d6465b9121fa64
BLAKE2b-256 ea787733536d98e6ed1b6b0c0b6debd3cc6fdb91ea813dad101d097713a236ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page