From 08f89d28445c4b980ac99c48e0af9dcde8b1b751 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Sat, 7 Apr 2018 21:06:11 -0400 Subject: [PATCH] Stop using task_self in bound tasks. --- .../services/modules/discord/tasks.py | 16 +++++++------- allianceauth/services/tasks.py | 21 ++----------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/allianceauth/services/modules/discord/tasks.py b/allianceauth/services/modules/discord/tasks.py index 8995e267..4edc96c5 100644 --- a/allianceauth/services/modules/discord/tasks.py +++ b/allianceauth/services/modules/discord/tasks.py @@ -60,7 +60,7 @@ class DiscordTasks: @staticmethod @shared_task(bind=True, name='discord.update_groups', base=QueueOnce) - def update_groups(task_self, pk): + def update_groups(self, pk): user = User.objects.get(pk=pk) logger.debug("Updating discord groups for user %s" % user) if DiscordTasks.has_account(user): @@ -71,7 +71,7 @@ class DiscordTasks: except DiscordApiBackoff as bo: logger.info("Discord group sync API back off for %s, " "retrying in %s seconds" % (user, bo.retry_after_seconds)) - raise task_self.retry(countdown=bo.retry_after_seconds) + raise self.retry(countdown=bo.retry_after_seconds) except HTTPError as e: if e.response.status_code == 404: try: @@ -82,9 +82,9 @@ class DiscordTasks: finally: raise e except Exception as e: - if task_self: + if self: logger.exception("Discord group sync failed for %s, retrying in 10 mins" % user) - raise task_self.retry(countdown=60 * 10) + raise self.retry(countdown=60 * 10) else: # Rethrow raise e @@ -101,7 +101,7 @@ class DiscordTasks: @staticmethod @shared_task(bind=True, name='discord.update_nickname', base=QueueOnce) - def update_nickname(task_self, pk): + def update_nickname(self, pk): user = User.objects.get(pk=pk) logger.debug("Updating discord nickname for user %s" % user) if DiscordTasks.has_account(user): @@ -113,11 +113,11 @@ class DiscordTasks: except DiscordApiBackoff as bo: logger.info("Discord nickname update API back off for %s, " "retrying in %s seconds" % (user, bo.retry_after_seconds)) - raise task_self.retry(countdown=bo.retry_after_seconds) + raise self.retry(countdown=bo.retry_after_seconds) except Exception as e: - if task_self: + if self: logger.exception("Discord nickname sync failed for %s, retrying in 10 mins" % user) - raise task_self.retry(countdown=60 * 10) + raise self.retry(countdown=60 * 10) else: # Rethrow raise e diff --git a/allianceauth/services/tasks.py b/allianceauth/services/tasks.py index 5e812adf..9803a4d1 100644 --- a/allianceauth/services/tasks.py +++ b/allianceauth/services/tasks.py @@ -1,12 +1,11 @@ import logging -from celery import shared_task, Task +from celery import shared_task from django.contrib.auth.models import User from .hooks import ServicesHook from celery_once import QueueOnce as BaseTask, AlreadyQueued -from celery_once.helpers import now_unix, queue_once_key +from celery_once.helpers import now_unix from django.core.cache import cache -from inspect import getcallargs logger = logging.getLogger(__name__) @@ -16,22 +15,6 @@ class QueueOnce(BaseTask): once = BaseTask.once once['graceful'] = True - def get_key(self, args=None, kwargs=None): - """ - Generate the key from the name of the task (e.g. 'tasks.example') and - args/kwargs. - """ - restrict_to = self.once.get('keys', None) - args = args or {} - kwargs = kwargs or {} - call_args = getcallargs(self.run, *args, **kwargs) - - if isinstance(call_args.get('self'), Task): - del call_args['self'] - if isinstance(call_args.get('task_self'), Task): - del call_args['task_self'] - return queue_once_key(self.name, call_args, restrict_to) - class DjangoBackend: def __init__(self, settings):