Mixin for publishing events to RabbitMQ as avro datums
Project description
AMQP Publishing Mixin for publishing a message as an Avro datum.
Installation
sprockets.mixins.avro-publisher is available on the Python Package Index and can be installed via pip or easy_install:
pip install sprockets.mixins.avro-publisher
Requirements
sprockets.mixins.amqp>=3.0.0
fastavro>=0.10.1,<2.0.0
tornado>=6,<7
Example
This examples demonstrates the most basic usage of sprockets.mixins.avro-publisher
export AMQP_URL="amqp://user:password@rabbitmq_host:5672/%2f"
python my-example-app.py
from tornado import gen
from tornado import web
from sprockets.mixins import avro_publisher
def make_app(**settings):
settings = {'avro_schema_uri_format': 'http://my-schema-repository/%(name)s.avsc'}
application = web.Application(
[
web.url(r'/', RequestHandler),
], **settings)
avro_publisher.install(application)
return application
class RequestHandler(avro_publisher.PublishingMixin, web.RequestHandler):
async def get(self, *args, **kwargs):
body = {'request': self.request.path, 'args': args, 'kwargs': kwargs}
await self.avro_amqp_publish(
'exchange',
'routing.key',
'avro-schema-name'
body)
if __name__ == "__main__":
application = make_app()
application.listen(8888)
logging.basicConfig(level=logging.INFO)
ioloop.IOLoop.current().start()
Source
sprockets.mixins.avro-publisher source is available on Github at https://github.com/sprockets/sprockets.mixins.avro-publisher
License
sprockets.mixins.avro-publisher is released under the 3-Clause BSD license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file sprockets.mixins.avro-publisher-3.0.1.tar.gz
.
File metadata
- Download URL: sprockets.mixins.avro-publisher-3.0.1.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e8c859932ea460ae982a1259ba8c9eb5bb3707df865f51375914d15c2d553a2 |
|
MD5 | 535396daa268a777a17be3349d195605 |
|
BLAKE2b-256 | e8429399b9e97e44bad3845bbf6df8d3b1de14b4c465b0a605aa5f5cdd25a3bb |