From 103fe2acca57648710617072d94afcf2b2442985 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 21 Mar 2016 17:57:23 +0100 Subject: [PATCH] Try to improve async task performance by using more long-running requests --- src/pretix/presale/views/async.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pretix/presale/views/async.py b/src/pretix/presale/views/async.py index 815646710..9417ba45e 100644 --- a/src/pretix/presale/views/async.py +++ b/src/pretix/presale/views/async.py @@ -1,5 +1,6 @@ import logging +import celery.exceptions from django.conf import settings from django.contrib import messages from django.http import JsonResponse @@ -43,11 +44,18 @@ class AsyncAction: from celery.result import AsyncResult res = AsyncResult(request.GET.get('async_id')) if 'ajax' in self.request.GET: + if not res.ready(): + try: + res.get(timeout=0.5) + except celery.exceptions.TimeoutError: + pass + + ready = res.ready() data = { 'async_id': res.id, - 'ready': res.ready() + 'ready': ready } - if res.ready(): + if ready: if res.successful() and not isinstance(res.info, Exception): smes = self.get_success_message(res.info) if smes: