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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 875adcb3ffdc436ca1f7b15ad97241f866b3ca4f2ac1def97cf9e0400e293c87 |
|
MD5 | 00a89916e68bdffffd673308dcd42598 |
|
BLAKE2b-256 | 646694d7bf51333720eb51566c1fa955952f1545bc0a58468311518d554b7057 |