Provides abstract classes for messages publication in async queues
Project description
Classic Messaging
This package provides abstract classes for message queues.
Usage:
from classic.components import component
from classic.messaging import Message, Publisher
@component
class SomeService:
publisher: Publisher
def do_some_work(self):
message = Message('target', 'Some very useful info')
self.publisher.publish(message)
Publisher have inner buffer. Messages can be planned for publishing, and will be published later
Usage with deferred publishing:
from classic.components import component
from classic.messaging import Message, Publisher
@component
class SomeService:
publisher: Publisher
def create_message(self):
message = Message('target', 'Some very useful info')
self.publisher.plan(message)
def do_some_work(self):
try:
self.create_message()
except Exception:
self.publisher.reset()
raise
else:
self.publisher.flush()
Usage with join_points:
from classic.components import component
from classic.messaging import Message, Publisher
from classic.aspects import join_poin
@component
class SomeService:
publisher: Publisher
@join_poin
def do_some_work(self):
message = Message('target', 'Some very useful info')
self.publisher.plan(message)
class RealPublisher(Publisher):
def publish(self, message):
print(message)
publisher = RealPublisher()
SomeService.do_some_work.join(publisher)
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 classic_messaging-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fcce7b730e64704a88916b0df233f6bc95631d83c061680a368f2c941e81e5b |
|
MD5 | 997f22805fba9d5170fab45af106a195 |
|
BLAKE2b-256 | 31fe47ab391f8308d8e60dbe3fc2f6001cfcd86418aadfe37d416a5f6ddaddd0 |