diff --git a/scheduler.py b/scheduler.py index 92275055bcde6677fc90520baafcee9b6f17ef5f..af7a6b501bfe144b6a786d776b9905616f347243 100644 --- a/scheduler.py +++ b/scheduler.py @@ -22,6 +22,8 @@ def sched_func(delay, priority=0, firstdelay=None, args=[], kargs={}): func(*args, **kargs) except Exception: traceback.print_exc() + notify_admins('scheduler_exception', name=func.__name__, + traceback=traceback.format_exc()) scheduler.enter(delay, priority, sched_wrapper) scheduler.enter(firstdelay, priority, sched_wrapper) print("Scheduler: registered {} (frequency 1/{}s, start delay: {}s)".format(func.__name__, delay, firstdelay)) diff --git a/server.py b/server.py index 60740ee12054f93bf7457b2ae2fc649c4087ac2d..7898f588e6efec2a0eb7d43b266ac07ccf20e72a 100644 --- a/server.py +++ b/server.py @@ -43,10 +43,10 @@ if not config.get('SECRET_KEY', None): config['SECRET_KEY'] = os.urandom(24) from db import query, modify, show, searchquery +from mail import notify_mods, notify_admins from ldap import ldapauth from legacy import legacy_index from scheduler import sched_func -from mail import notify_mods, notify_admins mod_endpoints = [] @@ -124,7 +124,7 @@ def handle_not_found(e=None): @app.errorhandler(Exception) def handle_internal_error(e): traceback.print_exc() - notify_admins('exception', traceback=traceback.format_exc()) + notify_admins('endpoint_exception', traceback=traceback.format_exc()) return render_template('500.html'), 500 @sched_func(5*60, firstdelay=0) diff --git a/templates/mails/exception.body b/templates/mails/endpoint_exception.body similarity index 100% rename from templates/mails/exception.body rename to templates/mails/endpoint_exception.body diff --git a/templates/mails/exception.subject b/templates/mails/endpoint_exception.subject similarity index 100% rename from templates/mails/exception.subject rename to templates/mails/endpoint_exception.subject diff --git a/templates/mails/scheduler_exception.body b/templates/mails/scheduler_exception.body new file mode 100644 index 0000000000000000000000000000000000000000..7bf228cf3ae3b731b0ccd97cf9a611f453e810bd --- /dev/null +++ b/templates/mails/scheduler_exception.body @@ -0,0 +1,4 @@ +Function: {{ name }} +Hostname: {{ gethostname() }} + +{{ traceback }} diff --git a/templates/mails/scheduler_exception.subject b/templates/mails/scheduler_exception.subject new file mode 100644 index 0000000000000000000000000000000000000000..ff9fc4ff9c0d5109128d204c2723c04ba19337a8 --- /dev/null +++ b/templates/mails/scheduler_exception.subject @@ -0,0 +1 @@ +Exception in scheduler function "{{ name }}"