From e260c8b0301e9544b0a86033749fd64d496bd964 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sun, 29 Sep 2013 18:57:29 +0200 Subject: [PATCH] don't retry device sync on SubscriptionException --- mygpo/users/tasks.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mygpo/users/tasks.py b/mygpo/users/tasks.py index 96f6c866..32062127 100644 --- a/mygpo/users/tasks.py +++ b/mygpo/users/tasks.py @@ -4,19 +4,34 @@ from collections import Counter from couchdbkit import ResourceConflict +from mygpo.core.models import SubscriptionException from mygpo.cel import celery from mygpo.db.couchdb.user import suggestions_for_user, update_device_state +from celery.utils.log import get_task_logger +logger = get_task_logger(__name__) + @celery.task(max_retries=5, default_retry_delay=60) def sync_user(user): """ Syncs all of the user's device groups """ for group in user.get_grouped_devices(): - if group.is_synced: + if not group.is_synced: + continue + + try: device = group.devices[0] user.sync_group(device) + except SubscriptionException: + # no need to retry on SubscriptionException + pass + + except Exception as e: + logger.exception('retrying task') + raise sync_user.retry() + @celery.task(max_retries=5, default_retry_delay=60) def update_suggestions(user, max_suggestions=15): -- 2.11.4.GIT