feat: Implement notification system with Apprise integration and credential checks
This commit is contained in:
@@ -18,3 +18,25 @@ celery.conf.task_default_queue = 'document_processor'
|
||||
celery.conf.task_routes = {
|
||||
"app.tasks.*": {"queue": "document_processor"},
|
||||
}
|
||||
|
||||
# Task failure notification handler
|
||||
from celery.signals import task_failure
|
||||
|
||||
@task_failure.connect
|
||||
def task_failure_handler(sender=None, task_id=None, exception=None, args=None,
|
||||
kwargs=None, traceback=None, einfo=None, **kw):
|
||||
"""Handler for Celery task failures to send notifications"""
|
||||
if getattr(settings, 'notify_on_task_failure', True):
|
||||
try:
|
||||
# Import here to avoid circular imports
|
||||
from app.utils.notification import notify_celery_failure
|
||||
notify_celery_failure(
|
||||
task_name=sender.name if sender else "Unknown",
|
||||
task_id=task_id or "N/A",
|
||||
exc=exception,
|
||||
args=args or [],
|
||||
kwargs=kwargs or {}
|
||||
)
|
||||
except Exception as e:
|
||||
import logging
|
||||
logging.exception(f"Failed to send task failure notification: {e}")
|
||||
|
||||
Reference in New Issue
Block a user