Skip to main content

Open in Dev Containers

dramatiq-kombu-broker

Dramatiq Kombu-based broker

Key features:

  • Connection pool support (native): no unexpected connections count grow up!
  • Channel pool support (via kombu-pyamqp-threadsafe lib): consume and produce through channels, "Connection limit reach" fixed now!
  • Memory protection via configurable max_delay_time limits: prevents RabbitMQ memory exhaustion from long-delayed messages
  • Deadlock protection via confirm_timeout: prevents infinite blocking when RabbitMQ connection fails during message publishing (default: 5s timeout)

Minor features

  • Auto-add hostname to connection props.
  • Allow change default queue name without changing each actor (e.g. 'default' -> 'dramatiq'). See configuration docs
  • Consumer healthcheck support
  • Ignore topology difference (PreconditionFailed), you can change your queue options safely
  • No scary Pika logs. Fully based on kombu.
  • ACK/NACK in YOUR middleware. Check message acknowledge status: Message.acknowledged

Auto-add hostname to connection props. Now you can see location of each connection in RabbitMQ web admin

Installing

To install this package, run:

pip install dramatiq-kombu-broker

Using

Django Dramatiq

settings.py

    DRAMATIQ_BROKER = {
        'BROKER': 'dramatiq_kombu_broker.broker.ConnectionSharedKombuBroker',
        'OPTIONS': {
            'kombu_connection_options': KOMBU_RABBITMQ_PARAMS,
        },
    }

Contributing

Prerequisites
1. Set up Git to use SSH
  1. Generate an SSH key and add the SSH key to your GitHub account.
  2. Configure SSH to automatically load your SSH keys:
    cat << EOF >> ~/.ssh/config
    
    Host *
      AddKeysToAgent yes
      IgnoreUnknown UseKeychain
      UseKeychain yes
      ForwardAgent yes
    EOF
    
2. Install Docker
  1. Install Docker Desktop.
3. Install VS Code or PyCharm
  1. Install VS Code and VS Code's Dev Containers extension. Alternatively, install PyCharm.
  2. Optional: install a Nerd Font such as FiraCode Nerd Font and configure VS Code or configure PyCharm to use it.
Development environments

The following development environments are supported:

  1. ⭐️ GitHub Codespaces: click on Code and select Create codespace to start a Dev Container with GitHub Codespaces.
  2. ⭐️ Dev Container (with container volume): click on Open in Dev Containers to clone this repository in a container volume and create a Dev Container with VS Code.
  3. Dev Container: clone this repository, open it with VS Code, and run Ctrl/⌘ + ⇧ + P → Dev Containers: Reopen in Container.
  4. PyCharm: clone this repository, open it with PyCharm, and configure Docker Compose as a remote interpreter with the dev service.
  5. Terminal: clone this repository, open it with your terminal, and run docker compose up --detach dev to start a Dev Container in the background, and then run docker compose exec dev zsh to open a shell prompt in the Dev Container.
Developing
  • This project follows the Conventional Commits standard to automate Semantic Versioning and Keep A Changelog with Commitizen.
  • Run poe from within the development environment to print a list of Poe the Poet tasks available to run on this project.
  • Run poetry add {package} from within the development environment to install a run time dependency and add it to pyproject.toml and poetry.lock. Add --group test or --group dev to install a CI or development dependency, respectively.
  • Run poetry update from within the development environment to upgrade all dependencies to the latest versions allowed by pyproject.toml.
  • Run cz bump to bump the package's version, update the CHANGELOG.md, and create a git tag.

Metadata

Release files for dramatiq-kombu-broker 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dramatiq-kombu-broker 0.3.0
File Size Uploaded Provenance
dramatiq_kombu_broker-0.3.0.tar.gz 209.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dramatiq-kombu-broker 0.3.0
File Interpreter ABI Platform
dramatiq_kombu_broker-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 232.5 kB

Release files / dramatiq_kombu_broker-0.3.0.tar.gz

Download URL dramatiq_kombu_broker-0.3.0.tar.gz
Size 209.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d6518879d42848815693c969d7924be1729096f0258f043f64c8ce3fd1f2c101
BLAKE2b-256 checksum
How to use checksums
8c3c56c14908733cf41c949613d6d42d6cfed7ca6a273cea0b10ad4f51fe7f43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

Release files / dramatiq_kombu_broker-0.3.0-py3-none-any.whl

Download URL dramatiq_kombu_broker-0.3.0-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
593952b5430ca1fcbbb662f725d25dfd590d7f6cdbe16da7a58e6b96f8a2c158
BLAKE2b-256 checksum
How to use checksums
2986105ffda8d70c13c07acee448dac5d5fa52f4c991b407e4f3b9a01a559aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.10.19 Linux/6.11.0-1018-azure

Security for dramatiq-kombu-broker 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page