Added exception logging for event bus worker loop

This commit is contained in:
Gina Häußge 2015-01-19 12:13:04 +01:00
parent 416b897596
commit 1daa6df346

View file

@ -109,22 +109,25 @@ class EventManager(object):
self._worker.start()
def _work(self):
while True:
(event, payload) = self._queue.get(True)
try:
while True:
(event, payload) = self._queue.get(True)
eventListeners = self._registeredListeners[event]
self._logger.debug("Firing event: %s (Payload: %r)" % (event, payload))
eventListeners = self._registeredListeners[event]
self._logger.debug("Firing event: %s (Payload: %r)" % (event, payload))
for listener in eventListeners:
self._logger.debug("Sending action to %r" % listener)
try:
listener(event, payload)
except:
self._logger.exception("Got an exception while sending event %s (Payload: %r) to %s" % (event, payload, listener))
for listener in eventListeners:
self._logger.debug("Sending action to %r" % listener)
try:
listener(event, payload)
except:
self._logger.exception("Got an exception while sending event %s (Payload: %r) to %s" % (event, payload, listener))
octoprint.plugin.call_plugin(octoprint.plugin.types.EventHandlerPlugin,
"on_event",
args=[event, payload])
octoprint.plugin.call_plugin(octoprint.plugin.types.EventHandlerPlugin,
"on_event",
args=[event, payload])
except:
self._logger.exception("Ooops, the event bus worker loop crashed")
def fire(self, event, payload=None):
"""