From f62b1c417b6607467776eb54ce95ec2bac489e8f Mon Sep 17 00:00:00 2001
From: Muhammad Soban Javed <58461728+iamsobanjaved@users.noreply.github.com>
Date: Thu, 7 Jan 2021 19:46:34 +0500
Subject: [PATCH] replaced task decorator with shared_task decorator (#25925)

---
 lms/djangoapps/bulk_email/tasks.py          |  4 +--
 lms/djangoapps/certificates/tasks.py        |  4 +--
 lms/djangoapps/discussion/tasks.py          |  6 ++--
 lms/djangoapps/email_marketing/tasks.py     | 10 +++---
 lms/djangoapps/gating/tasks.py              |  4 +--
 lms/djangoapps/grades/tasks.py              | 12 ++++----
 lms/djangoapps/instructor_task/tasks.py     | 34 ++++++++++-----------
 lms/djangoapps/program_enrollments/tasks.py |  4 +--
 lms/djangoapps/verify_student/tasks.py      |  6 ++--
 9 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/lms/djangoapps/bulk_email/tasks.py b/lms/djangoapps/bulk_email/tasks.py
index 65665f2289e..4902fcb378f 100644
--- a/lms/djangoapps/bulk_email/tasks.py
+++ b/lms/djangoapps/bulk_email/tasks.py
@@ -27,7 +27,7 @@ from boto.ses.exceptions import (
     SESLocalAddressCharacterError,
     SESMaxSendingRateExceededError
 )
-from celery import current_task, task
+from celery import current_task, shared_task
 from celery.exceptions import RetryTaskError
 from celery.states import FAILURE, RETRY, SUCCESS
 from django.conf import settings
@@ -237,7 +237,7 @@ def perform_delegate_email_batches(entry_id, course_id, task_input, action_name)
     return progress
 
 
-@task(default_retry_delay=settings.BULK_EMAIL_DEFAULT_RETRY_DELAY, max_retries=settings.BULK_EMAIL_MAX_RETRIES)
+@shared_task(default_retry_delay=settings.BULK_EMAIL_DEFAULT_RETRY_DELAY, max_retries=settings.BULK_EMAIL_MAX_RETRIES)
 @set_code_owner_attribute
 def send_course_email(entry_id, email_id, to_list, global_email_context, subtask_status_dict):
     """
diff --git a/lms/djangoapps/certificates/tasks.py b/lms/djangoapps/certificates/tasks.py
index c3561d5023e..86629fd32c6 100644
--- a/lms/djangoapps/certificates/tasks.py
+++ b/lms/djangoapps/certificates/tasks.py
@@ -5,7 +5,7 @@ Module for generating certificate for a user
 
 from logging import getLogger
 
-from celery import task
+from celery import shared_task
 from celery_utils.persist_on_failure import LoggedPersistOnFailureTask
 from django.contrib.auth.models import User
 from edx_django_utils.monitoring import set_code_owner_attribute
@@ -18,7 +18,7 @@ from .api import generate_user_certificates
 logger = getLogger(__name__)
 
 
-@task(base=LoggedPersistOnFailureTask, bind=True, default_retry_delay=30, max_retries=2)
+@shared_task(base=LoggedPersistOnFailureTask, bind=True, default_retry_delay=30, max_retries=2)
 @set_code_owner_attribute
 def generate_certificate(self, **kwargs):
     """
diff --git a/lms/djangoapps/discussion/tasks.py b/lms/djangoapps/discussion/tasks.py
index 2a00c0c73ce..2179fd62a53 100644
--- a/lms/djangoapps/discussion/tasks.py
+++ b/lms/djangoapps/discussion/tasks.py
@@ -7,7 +7,7 @@ pertaining to new discussion forum comments.
 import logging
 
 import six
-from celery import task
+from celery import shared_task
 from celery_utils.logged_task import LoggedTask
 from django.conf import settings
 from django.contrib.auth.models import User
@@ -38,7 +38,7 @@ log = logging.getLogger(__name__)
 DEFAULT_LANGUAGE = 'en'
 
 
-@task(base=LoggedTask)
+@shared_task(base=LoggedTask)
 @set_code_owner_attribute
 def update_discussions_map(context):
     """
@@ -61,7 +61,7 @@ class ResponseNotification(BaseMessageType):
     pass
 
 
-@task(base=LoggedTask)
+@shared_task(base=LoggedTask)
 @set_code_owner_attribute
 def send_ace_message(context):
     context['course_id'] = CourseKey.from_string(context['course_id'])
diff --git a/lms/djangoapps/email_marketing/tasks.py b/lms/djangoapps/email_marketing/tasks.py
index ce68f95e3cd..c79e5677955 100644
--- a/lms/djangoapps/email_marketing/tasks.py
+++ b/lms/djangoapps/email_marketing/tasks.py
@@ -8,7 +8,7 @@ import time
 from datetime import datetime, timedelta
 
 import six
-from celery import task
+from celery import shared_task
 from django.conf import settings
 from django.core.cache import cache
 from edx_django_utils.monitoring import set_code_owner_attribute
@@ -21,7 +21,7 @@ log = logging.getLogger(__name__)
 SAILTHRU_LIST_CACHE_KEY = "email.marketing.cache"
 
 
-@task(bind=True)
+@shared_task(bind=True)
 @set_code_owner_attribute
 def get_email_cookies_via_sailthru(self, user_email, post_parms):
     """
@@ -62,7 +62,7 @@ def get_email_cookies_via_sailthru(self, user_email, post_parms):
     return None
 
 
-@task(bind=True, default_retry_delay=3600, max_retries=24)
+@shared_task(bind=True, default_retry_delay=3600, max_retries=24)
 @set_code_owner_attribute
 def update_user(self, sailthru_vars, email, site=None, new_user=False, activation=False):
     """
@@ -145,7 +145,7 @@ def is_default_site(site):
     return not site or site.get('id') == settings.SITE_ID
 
 
-@task(bind=True, default_retry_delay=3600, max_retries=24)
+@shared_task(bind=True, default_retry_delay=3600, max_retries=24)
 @set_code_owner_attribute
 def update_user_email(self, new_email, old_email):
     """
@@ -306,7 +306,7 @@ def _retryable_sailthru_error(error):
     return code == 9 or code == 43
 
 
-@task(bind=True)
+@shared_task(bind=True)
 @set_code_owner_attribute
 def update_course_enrollment(self, email, course_key, mode, site=None):
     """Adds/updates Sailthru when a user adds to cart/purchases/upgrades a course
diff --git a/lms/djangoapps/gating/tasks.py b/lms/djangoapps/gating/tasks.py
index 35ce1ee5d93..0fffe337450 100644
--- a/lms/djangoapps/gating/tasks.py
+++ b/lms/djangoapps/gating/tasks.py
@@ -6,7 +6,7 @@ This file contains celery tasks related to course content gating.
 import logging
 
 import six
-from celery import task
+from celery import shared_task
 from django.contrib.auth.models import User
 from edx_django_utils.monitoring import set_code_owner_attribute
 from opaque_keys.edx.keys import CourseKey, UsageKey
@@ -18,7 +18,7 @@ from xmodule.modulestore.django import modulestore
 log = logging.getLogger(__name__)
 
 
-@task
+@shared_task
 @set_code_owner_attribute
 def task_evaluate_subsection_completion_milestones(course_id, block_id, user_id):
     """
diff --git a/lms/djangoapps/grades/tasks.py b/lms/djangoapps/grades/tasks.py
index 8f25b348422..0a32b4e40bd 100644
--- a/lms/djangoapps/grades/tasks.py
+++ b/lms/djangoapps/grades/tasks.py
@@ -6,7 +6,7 @@ This module contains tasks for asynchronous execution of grade updates.
 from logging import getLogger
 
 import six
-from celery import task
+from celery import shared_task
 from celery_utils.persist_on_failure import LoggedPersistOnFailureTask
 from django.conf import settings
 from django.contrib.auth.models import User
@@ -52,7 +52,7 @@ RETRY_DELAY_SECONDS = 40
 SUBSECTION_GRADE_TIMEOUT_SECONDS = 300
 
 
-@task(base=LoggedPersistOnFailureTask)
+@shared_task(base=LoggedPersistOnFailureTask)
 @set_code_owner_attribute
 def compute_all_grades_for_course(**kwargs):
     """
@@ -78,7 +78,7 @@ def compute_all_grades_for_course(**kwargs):
             )
 
 
-@task(
+@shared_task(
     bind=True,
     base=LoggedPersistOnFailureTask,
     default_retry_delay=RETRY_DELAY_SECONDS,
@@ -110,7 +110,7 @@ def compute_grades_for_course_v2(self, **kwargs):
         raise self.retry(kwargs=kwargs, exc=exc)
 
 
-@task(base=LoggedPersistOnFailureTask)
+@shared_task(base=LoggedPersistOnFailureTask)
 @set_code_owner_attribute
 def compute_grades_for_course(course_key, offset, batch_size, **kwargs):  # pylint: disable=unused-argument
     """
@@ -132,7 +132,7 @@ def compute_grades_for_course(course_key, offset, batch_size, **kwargs):  # pyli
             raise result.error
 
 
-@task(
+@shared_task(
     bind=True,
     base=LoggedPersistOnFailureTask,
     time_limit=SUBSECTION_GRADE_TIMEOUT_SECONDS,
@@ -173,7 +173,7 @@ def recalculate_course_and_subsection_grades_for_user(self, **kwargs):  # pylint
         )
 
 
-@task(
+@shared_task(
     bind=True,
     base=LoggedPersistOnFailureTask,
     time_limit=SUBSECTION_GRADE_TIMEOUT_SECONDS,
diff --git a/lms/djangoapps/instructor_task/tasks.py b/lms/djangoapps/instructor_task/tasks.py
index 8a05d213ff5..c069887aa09 100644
--- a/lms/djangoapps/instructor_task/tasks.py
+++ b/lms/djangoapps/instructor_task/tasks.py
@@ -23,7 +23,7 @@ of the query for traversing StudentModule objects.
 import logging
 from functools import partial
 
-from celery import task
+from celery import shared_task
 from django.conf import settings
 from django.utils.translation import ugettext_noop
 from edx_django_utils.monitoring import set_code_owner_attribute
@@ -55,7 +55,7 @@ from lms.djangoapps.instructor_task.tasks_helper.runner import run_main_task
 TASK_LOG = logging.getLogger('edx.celery.task')
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def rescore_problem(entry_id, xmodule_instance_args):
     """Rescores a problem in a course, for all students or one specific student.
@@ -83,7 +83,7 @@ def rescore_problem(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, visit_fcn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def override_problem_score(entry_id, xmodule_instance_args):
     """
@@ -97,7 +97,7 @@ def override_problem_score(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, visit_fcn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def reset_problem_attempts(entry_id, xmodule_instance_args):
     """Resets problem attempts to zero for a particular problem for all students in a course.
@@ -120,7 +120,7 @@ def reset_problem_attempts(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, visit_fcn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def delete_problem_state(entry_id, xmodule_instance_args):
     """Deletes problem state entirely for all students on a particular problem in a course.
@@ -143,7 +143,7 @@ def delete_problem_state(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, visit_fcn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def send_bulk_course_email(entry_id, _xmodule_instance_args):
     """Sends emails to recipients enrolled in a course.
@@ -165,7 +165,7 @@ def send_bulk_course_email(entry_id, _xmodule_instance_args):
     return run_main_task(entry_id, visit_fcn, action_name)
 
 
-@task(
+@shared_task(
     name='lms.djangoapps.instructor_task.tasks.calculate_problem_responses_csv.v2',
     base=BaseInstructorTask,
 )
@@ -181,7 +181,7 @@ def calculate_problem_responses_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def calculate_grades_csv(entry_id, xmodule_instance_args):
     """
@@ -198,7 +198,7 @@ def calculate_grades_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def calculate_problem_grade_report(entry_id, xmodule_instance_args):
     """
@@ -216,7 +216,7 @@ def calculate_problem_grade_report(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def calculate_students_features_csv(entry_id, xmodule_instance_args):
     """
@@ -229,7 +229,7 @@ def calculate_students_features_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def course_survey_report_csv(entry_id, xmodule_instance_args):
     """
@@ -242,7 +242,7 @@ def course_survey_report_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def proctored_exam_results_csv(entry_id, xmodule_instance_args):
     """
@@ -254,7 +254,7 @@ def proctored_exam_results_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def calculate_may_enroll_csv(entry_id, xmodule_instance_args):
     """
@@ -268,7 +268,7 @@ def calculate_may_enroll_csv(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def generate_certificates(entry_id, xmodule_instance_args):
     """
@@ -285,7 +285,7 @@ def generate_certificates(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def cohort_students(entry_id, xmodule_instance_args):
     """
@@ -298,7 +298,7 @@ def cohort_students(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def export_ora2_data(entry_id, xmodule_instance_args):
     """
@@ -309,7 +309,7 @@ def export_ora2_data(entry_id, xmodule_instance_args):
     return run_main_task(entry_id, task_fn, action_name)
 
 
-@task(base=BaseInstructorTask)
+@shared_task(base=BaseInstructorTask)
 @set_code_owner_attribute
 def export_ora2_submission_files(entry_id, xmodule_instance_args):
     """
diff --git a/lms/djangoapps/program_enrollments/tasks.py b/lms/djangoapps/program_enrollments/tasks.py
index 46f356d8c00..300abc4d105 100644
--- a/lms/djangoapps/program_enrollments/tasks.py
+++ b/lms/djangoapps/program_enrollments/tasks.py
@@ -4,7 +4,7 @@
 import logging
 from datetime import timedelta
 
-from celery import task
+from celery import shared_task
 from celery_utils.logged_task import LoggedTask
 from django.utils import timezone
 from edx_django_utils.monitoring import set_code_owner_attribute
@@ -14,7 +14,7 @@ from lms.djangoapps.program_enrollments.models import ProgramCourseEnrollment, P
 log = logging.getLogger(__name__)
 
 
-@task(base=LoggedTask)
+@shared_task(base=LoggedTask)
 @set_code_owner_attribute
 def expire_waiting_enrollments(expiration_days):
     """
diff --git a/lms/djangoapps/verify_student/tasks.py b/lms/djangoapps/verify_student/tasks.py
index f3acc5744d9..806c6295d9c 100644
--- a/lms/djangoapps/verify_student/tasks.py
+++ b/lms/djangoapps/verify_student/tasks.py
@@ -7,7 +7,7 @@ from smtplib import SMTPException
 
 import requests
 import simplejson
-from celery import Task, task
+from celery import Task, shared_task
 from celery.states import FAILURE
 from django.conf import settings
 from django.core.mail import EmailMessage
@@ -72,7 +72,7 @@ class BaseSoftwareSecureTask(Task):
             )
 
 
-@task
+@shared_task
 @set_code_owner_attribute
 def send_verification_status_email(context):
     """
@@ -94,7 +94,7 @@ def send_verification_status_email(context):
         log.warning(u"Failure in sending verification status e-mail to %s", dest_addr)
 
 
-@task(
+@shared_task(
     base=BaseSoftwareSecureTask,
     bind=True,
     default_retry_delay=settings.SOFTWARE_SECURE_REQUEST_RETRY_DELAY,
-- 
GitLab