From dd1832d0c9e97c11d2333241606846675ebb0983 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 11 Oct 2014 01:43:07 -0400 Subject: [PATCH] Add retry and rate limit support to the installation task --- mayan/apps/installation/models.py | 4 ++-- mayan/apps/installation/tasks.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mayan/apps/installation/models.py b/mayan/apps/installation/models.py index 1eab46d103..b88e1f9b00 100644 --- a/mayan/apps/installation/models.py +++ b/mayan/apps/installation/models.py @@ -164,8 +164,8 @@ class Installation(SingletonModel): try: requests.post(FORM_SUBMIT_URL, data={'formkey': FORM_KEY, FORM_RECEIVER_FIELD: Property.get_reportable(as_json=True)}, timeout=TIMEOUT) - except (requests.exceptions.Timeout, requests.exceptions.ConnectionError): - pass + except Exception: + raise else: self.is_first_run = False self.save() diff --git a/mayan/apps/installation/tasks.py b/mayan/apps/installation/tasks.py index d8dac90a37..fc18355bf4 100644 --- a/mayan/apps/installation/tasks.py +++ b/mayan/apps/installation/tasks.py @@ -1,9 +1,14 @@ +import requests + from mayan.celery import app from .models import Installation @app.task -def task_details_submit(): - details = Installation.objects.get() - details.submit() +def task_details_submit(max_retries=None, rate_limit='1/m', ignore_result=True): + try: + details = Installation.objects.get() + details.submit() + except (requests.exceptions.Timeout, requests.exceptions.ConnectionError) as exception: + raise self.retry(exc=exception)