"""Daemon for video jobs.""" import sentry_sdk from botocore.errorfactory import ClientError from video import config from video.logic import activity_task_worker_pool def before_send_exception_to_sentry(event, hint): """ Filter exceptions sent to sentry. :param event: Sentry event containing exception context. :param hint: Sentry hint containing raised exception. :return: event or None """ if 'exc_info' not in hint: return event _ignore_0, exc_value, _ignore_1 = hint['exc_info'] if not isinstance(exc_value, ClientError): return event if (exc_value.response.get('Error') or {}).get('Code') != 'TaskTimedOut': return event return None def main(): """Main function.""" sentry_sdk.init( config.SENTRY_DSN, before_send=before_send_exception_to_sentry) activity_task_worker_pool.start() if __name__ == '__main__': main()