From eda3818ae248e7b7e8d0e6f710ede54d0ab5df85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20K=C3=B6gl?= Date: Sat, 5 Apr 2014 19:25:11 +0200 Subject: [PATCH] handle resource conflict when update suggestions --- mygpo/users/tasks.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mygpo/users/tasks.py b/mygpo/users/tasks.py index 32062127..4d9d803e 100644 --- a/mygpo/users/tasks.py +++ b/mygpo/users/tasks.py @@ -7,6 +7,7 @@ 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 mygpo.decorators import repeat_on_conflict from celery.utils.log import get_task_logger logger = get_task_logger(__name__) @@ -34,6 +35,7 @@ def sync_user(user): @celery.task(max_retries=5, default_retry_delay=60) +@repeat_on_conflict(['user']) def update_suggestions(user, max_suggestions=15): """ updates the suggestions of a user """ @@ -54,12 +56,8 @@ def update_suggestions(user, max_suggestions=15): suggested = map(get_podcast_id, counter.most_common(max_suggestions)) suggestion.podcasts = suggested - try: - # update suggestions object - suggestion.save() - - except ResourceConflict as ex: - raise update_suggestions.retry(exc=ex) + # update suggestions object + suggestion.save() @celery.task(max_retries=5, default_retry_delay=60) -- 2.11.4.GIT