From e2c8fc53e82bcf84b9efe1e3926f50f74eacb223 Mon Sep 17 00:00:00 2001 From: Gregory Martin Date: Mon, 17 Jul 2017 17:57:30 -0400 Subject: [PATCH] add persistence --- openedx/core/djangoapps/signals/handlers.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/signals/handlers.py b/openedx/core/djangoapps/signals/handlers.py index 29aa1afda9..926580556a 100644 --- a/openedx/core/djangoapps/signals/handlers.py +++ b/openedx/core/djangoapps/signals/handlers.py @@ -4,6 +4,8 @@ This module contains all general use or cross-use handlers. import logging from celery.task import task +from celery_utils.logged_task import LoggedTask +from celery_utils.persist_on_failure import PersistOnFailureTask from django.dispatch import receiver from certificates.models import CertificateGenerationCourseSetting @@ -25,7 +27,14 @@ def _listen_for_course_pacing_changed(sender, course_key, course_self_paced, **k )) -@task() +class _BaseSelfCertTask(PersistOnFailureTask, LoggedTask): # pylint: disable=abstract-method + """ + Include persistence features, as well as logging of task invocation. + """ + abstract = True + + +@task(base=_BaseSelfCertTask) def toggle_self_generated_certs(course_key, course_self_paced): """ Enable or disable self-generated certificates for a course according to pacing.