diff --git a/eventtracking/processors/exceptions.py b/eventtracking/processors/exceptions.py index a41e882a..9310076a 100644 --- a/eventtracking/processors/exceptions.py +++ b/eventtracking/processors/exceptions.py @@ -7,3 +7,17 @@ class EventEmissionExit(Exception): This should only be raised by processors. """ + + +class NoTransformerImplemented(Exception): + """ + Raise this exception when there is no transformer implemented + for an event. + """ + + +class NoBackendEnabled(Exception): + """ + Raise this exception when there is no backend enabled + for an event. + """ diff --git a/eventtracking/tasks.py b/eventtracking/tasks.py index f264e590..64ca30e0 100644 --- a/eventtracking/tasks.py +++ b/eventtracking/tasks.py @@ -5,6 +5,8 @@ from celery.utils.log import get_task_logger from celery import shared_task from eventtracking.tracker import get_tracker +from eventtracking.processors.exceptions import NoTransformerImplemented +from eventtracking.processors.exceptions import NoBackendEnabled logger = get_task_logger(__name__) # Maximum number of retries before giving up on rounting event @@ -34,6 +36,13 @@ def send_event(self, backend_name, processed_event): tracker = get_tracker() backend = tracker.backends[backend_name] backend.send_to_backends(processed_event.copy()) + + except (NoTransformerImplemented, NoBackendEnabled) as exc: + logger.exception( + '[send_event] Failed to send event [%s] with backend [%s], [%s]', + processed_event['name'], backend_name, exc + ) + except Exception as exc: logger.exception( '[send_event] Failed to send event [%s] with backend [%s], [%s]', diff --git a/setup.py b/setup.py index 99235806..1db15260 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ def load_requirements(*requirements_paths): setup( name='event-tracking', - version='1.1.0', + version='1.1.1', packages=find_packages(), include_package_data=True, license='AGPLv3 License',