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