Dramatiq Kombu-based broker
Project description
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!
Minor features
- Auto-add hostname to connection props.
- Allow change default queue name without changing each actor (e.g. 'default' -> 'dramatiq')
- 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
- Generate an SSH key and add the SSH key to your GitHub account.
- 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
- Install Docker Desktop.
- Linux only:
- Export your user's user id and group id so that files created in the Dev Container are owned by your user:
cat << EOF >> ~/.bashrc export UID=$(id --user) export GID=$(id --group) EOF
- Export your user's user id and group id so that files created in the Dev Container are owned by your user:
- Linux only:
3. Install VS Code or PyCharm
- Install VS Code and VS Code's Dev Containers extension. Alternatively, install PyCharm.
- 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:
- ⭐️ GitHub Codespaces: click on Code and select Create codespace to start a Dev Container with GitHub Codespaces.
- ⭐️ 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.
- Dev Container: clone this repository, open it with VS Code, and run Ctrl/⌘ + ⇧ + P → Dev Containers: Reopen in Container.
- PyCharm: clone this repository, open it with PyCharm, and configure Docker Compose as a remote interpreter with the
dev
service. - 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 rundocker 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 topyproject.toml
andpoetry.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 bypyproject.toml
. - Run
cz bump
to bump the package's version, update theCHANGELOG.md
, and create a git tag.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for dramatiq_kombu_broker-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f9666ed90eac954704c08934ec4712c02d5e39aec3839e54fc878f19a604170 |
|
MD5 | cb78fb2cf85bda9787389c03853a5c14 |
|
BLAKE2b-256 | 7a1fcea2f72ac4e19aba44e4f258ed430a8e3fc7c17ef1896b653d6ca81d4bfc |
Close
Hashes for dramatiq_kombu_broker-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ea1c22b8d6727ecc8744ce5c6930c09a5c68a63b1ba3feee9b08839792b272d |
|
MD5 | b8612104cb11184d1c9087b9bea838af |
|
BLAKE2b-256 | 8bcd0ae7b1f293d03b4e829670e6e62e2443567db1b3c9f71c57576ef07596c9 |