A simple implementation of STOMP with Django
Project description
Django Stomp
A simple implementation of STOMP with Django.
In theory it can work with any broker which supports STOMP with none or minor adjustments.
Installation
pip install django_stomp
Add django_stomp
in your INSTALLED_APPS
and so be it.
Configuration process
Not yet fully available, but feel free to see our tests to get insights.
Consumer
First you must create a function which receives an parameter of type django_stomp.services.consumer.Payload
. Let's suppose the module app.sample
with the following content:
import logging
from django_stomp.services.consumer import Payload
logger = logging.getLogger(__name__)
def my_honest_logic(payload: Payload) -> None:
logger.info("Yeah, I received a payload from django-stomp!")
my_payload = payload.body
my_header = payload.headers
if my_payload.get("my-dict-key"):
payload.ack()
else:
logger.info("To DLQ!")
payload.nack()
Now you must provide broker connection details filling out the following parameters at least:
- STOMP_SERVER_HOST
- STOMP_SERVER_PORT
- STOMP_USE_SSL
And just create the job issuing the following command:
python manage.py pubsub "/queue/your-stuff" app.sample.my_honest_logic
That's it ✌️
Tests
In order to execute tests for ActiveMQ, execute the following:
docker-compose up -d broker-activemq
Or for RabbitMQ:
docker-compose up -d broker-rabbitmq
Then at last:
pipenv run tox
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
Hashes for django_stomp-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7671065b05f2869ff7f17fd6b0a5580567a140b91bf8d5bf76427c021fb35c4a |
|
MD5 | a365c5887c0cdc86b2e7d2fc8ab7d57c |
|
BLAKE2b-256 | 5475230ea958b845ef3e8b2f7010bf2b1477cbe08f09077bdec51dd87f358dec |