Report django_q2 errors to admins by email

This commit is contained in:
Adam Goldsmith 2023-11-14 13:52:55 -05:00
parent 300397b021
commit 8c48514c04
4 changed files with 24 additions and 2 deletions

View File

@ -0,0 +1,20 @@
import sys
from django.views.debug import ExceptionReporter
from django.core import mail
class AdminEmailReporter:
def __init__(self, **kwargs):
pass
def report(self):
reporter = ExceptionReporter(None, *sys.exc_info())
message = f"Failed to run task\n{reporter.get_traceback_text()}"
html_message = reporter.get_traceback_html()
mail.mail_admins(
"Django Q task failed",
message,
# fail_silently=True,
html_message=html_message,
)

View File

@ -1,5 +1,3 @@
import sys
from django_q.models import Schedule from django_q.models import Schedule

View File

@ -124,6 +124,7 @@ Q_CLUSTER = {
"retry": 60 * 6, "retry": 60 * 6,
"timeout": 60 * 5, "timeout": 60 * 5,
"catch_up": False, "catch_up": False,
"error_reporter": {"admin_email": {}},
"ALT_CLUSTERS": { "ALT_CLUSTERS": {
"internal": { "internal": {
"retry": 60 * 60, "retry": 60 * 60,

View File

@ -35,6 +35,9 @@ server = [
"setuptools~=68.2", "setuptools~=68.2",
] ]
[project.entry-points."djangoq.errorreporters"]
admin_email = "cmsmanage.django_q2_admin_email_reporter:AdminEmailReporter"
[tool.black] [tool.black]
line-length = 88 line-length = 88