fire_event could also be called by an external web server or service with no access to the bus. Therefore don't fail hard if the bus is not available
This commit is contained in:
parent
6e60edf2e1
commit
40a29a8214
1 changed files with 8 additions and 1 deletions
|
@ -1,4 +1,5 @@
|
|||
import inspect
|
||||
import logging
|
||||
import threading
|
||||
|
||||
|
||||
|
@ -9,6 +10,8 @@ class EventGenerator(object):
|
|||
types. Both plugins and backends extend this class.
|
||||
"""
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self._event_handlers = {} # Event type => callback map
|
||||
|
||||
|
@ -29,7 +32,11 @@ class EventGenerator(object):
|
|||
from platypush.context import get_bus
|
||||
|
||||
bus = self.bus if isinstance(self, Backend) else get_bus()
|
||||
bus.post(event)
|
||||
if not bus:
|
||||
self.logger.warning('No bus available to post the event: {}'.format(event))
|
||||
else:
|
||||
bus.post(event)
|
||||
|
||||
handlers = set()
|
||||
|
||||
for cls in inspect.getmro(event.__class__):
|
||||
|
|
Loading…
Reference in a new issue