A Quart thing to handle pubsub tasks in particular the event source
Project description
bovine_pubsub
bovine_pubsub is a simple wrapper to enable server sent events in bovine. These are used to communicate real time with clients without forcing them to use polling. If multiple workers are used with bovine
, one needs to use Redis as the implementation with queues only works for a single process.
Starting with bovine-pubsub
support for server side clients is available using AMQP. See examples/bovine_listen.py
for details.
Usage
The simplest usage example is given by
from quart import Quart
from bovine_pubsub import BovinePubSub
app = Quart(__name__)
BovinePubSub(app)
it adds the config variable app.config["bovine_pub_sub"]
to the Quart application. By calling
await app.config["bovine_pub_sub"].send("channel:test", b"test")
one sends the bytes b"test"
to the channel channel:test
. By calling
pub_sub.event_stream("channel:test")
one receives an async iterator that can be used as server sent events.
Example usage
A usage example is provided by examples/basic_app.py
. By running
python examples/basic.app
one can start a server that sends "test" 10 times a new socket is opened on localhost:5000
. The above implementation will use the local queues. To use with Redis start
BOVINE_REDIS=redis://localhost:6379 python examples/basic_app.py
with an appropriate value for the environment variable BOVINE_REDIS
.
Running tests
Testing redis can be done inside of the docker compose setup, e.g.
docker compose up -d
docker compose run main /bin/sh
cd bovine_pubsub
poetry install
poetry run pytest
BOVINE_REDIS=redis://redis:6379 poetry run pytest
BOVINE_AMQP=amqp://rabbitmq poetry run pytest
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
File details
Details for the file bovine_pubsub-0.5.12.tar.gz
.
File metadata
- Download URL: bovine_pubsub-0.5.12.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/6.1.0-26-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8765b520bd3dd60c349196f9a4f6172de7698806a404283d589f90e5e3c64e8a |
|
MD5 | 80c015ac63cedab919a80175f33f84d9 |
|
BLAKE2b-256 | 29534b32ef0f4434dfcc375cc5d09ba1aa050e0c1bcee59b8f4925d739feb2b6 |
File details
Details for the file bovine_pubsub-0.5.12-py3-none-any.whl
.
File metadata
- Download URL: bovine_pubsub-0.5.12-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.2 CPython/3.11.3 Linux/6.1.0-26-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0852c1b7039e097db9234800a8dc46721f682e83401bf257c478534e629c1d25 |
|
MD5 | d8ebb0c3bd7d433e6e88381573f3b789 |
|
BLAKE2b-256 | 4a9238014c8ec2727e41c97814d114c5c777fd07ce2977c5c80a9ff4e83540a8 |