Source code for jivago.event.async_event_bus
from concurrent.futures import ThreadPoolExecutor
from jivago.event.event_bus import EventBus
from jivago.lang.annotations import Override
[docs]
class AsyncEventBus(EventBus):
def __init__(self, event_bus: EventBus, pool_size=2):
self.event_bus = event_bus
self.thread_pool = ThreadPoolExecutor(max_workers=pool_size)
[docs]
@Override
def emit(self, message_name: str, payload=None):
self.thread_pool.submit(self.event_bus.emit, message_name, payload)