PubSub¶
guillotina
provides out of the box pubsub service with redis driver.
Configuration¶
applications:
- guillotina.contrib.redis
- guillotina.contrib.pubsub
Usage¶
You can subscribe to channels and define who you are so you make sure that you do not receive the message.
Multiple tasks can subscribe to the same channel and guillotina
will broadcast all the messages to all tasks.
from guillotina.component import get_utility
from guillotina.interfaces import IPubSubUtility
MY_PROCESS_ID = 'me'
async def callback(*, data=None, sender=None):
...
util = get_utility(IPubSubUtility)
await util.subscribe('channel_name', MY_PROCESS_ID, callback)
await util.publish('channel_name', MY_PROCESS_ID, 'mydata')