Message service implementing publisher/subscriber pattern
Project description
APubSub
Simple, single-purpose message service implementation.
Installation
Python versin 3.7+ required
Just install it with pip: pip install apubsub
Usage
from apubsub import Service
service = Service()
# Note that service is started in stand-alone process
# so start it as early as possible to minimize resource pickling*
service.start()
class Klass:
def __init__(self):
self.sub = service.get_client()
await self.sub.start_consuming() # subscriber should be started
self.pub = service.get_client() # if used only as publisher, it is not required
async def do_smth(self):
data = await self.sub.get(.1) # fetch received data with timeout
if data is None:
print("No data received by subscriber")
return
print(data)
async def do_smth_else(self):
msg = "some string data"
await self.pub.publish("topic", msg)
async def use_iter_get(self):
async for data in self.sub.get_iter():
print(f"Data received: {data}")
Check out more examples in tests
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
apubsub-0.2.5.tar.gz
(7.4 kB
view hashes)