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.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdccf8494cc6688a628b57fa9d0a1c696f17ea61f49b0f5ba8aba7db97a12917 |
|
MD5 | 3327d7e275fe0d489bf24ad4dfeeb119 |
|
BLAKE2b-256 | e0830b79a8233d5bba1bf25a536819ff96a3a4686e0f78b1d3c2c6d7778d9bcb |
Close
Hashes for dramatiq_kombu_broker-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98ca2746189ab6b5f48baafcf0fc918d07e847491c62fcf6b34bf61375669477 |
|
MD5 | 99d50a1f3ccf1c9efc9a2ddc5d5e9e4b |
|
BLAKE2b-256 | 18e3fa9de07e7c42a29bd35bf6a9db66d7df483d2bb61646ca6c923b62820566 |