From 887152a0e2cc9020c87d304bbfd7842a96089bd0 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 29 Mar 2017 14:34:44 +0200 Subject: [PATCH] Fix retry logic for failed order downloads --- src/pretix/presale/views/order.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index 935d0e73a..79380081a 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -550,11 +550,13 @@ class OrderDownload(EventViewMixin, OrderDetailMixin, View): extension='', type='', file=None) generate_order.apply_async(args=(self.order.id, self.output.identifier)) + if not ct.file: + if now() - ct.created > timedelta(minutes=5): + generate_order.apply_async(args=(self.order.id, self.output.identifier)) + if 'ajax' in self.request.GET: return HttpResponse('1' if ct and ct.file else '0') elif not ct.file: - if now() - ct.created > timedelta(minutes=110): - generate_order.apply_async(args=(self.order.id, self.output.identifier)) return render(self.request, "pretixbase/cachedfiles/pending.html", {}) else: resp = FileResponse(ct.file.file, content_type=ct.type) @@ -577,11 +579,13 @@ class OrderDownload(EventViewMixin, OrderDetailMixin, View): extension='', type='', file=None) generate.apply_async(args=(self.order_position.id, self.output.identifier)) + if not ct.file: + if now() - ct.created > timedelta(minutes=5): + generate.apply_async(args=(self.order_position.id, self.output.identifier)) + if 'ajax' in self.request.GET: return HttpResponse('1' if ct and ct.file else '0') elif not ct.file: - if now() - ct.created > timedelta(minutes=110): - generate.apply_async(args=(self.order_position.id, self.output.identifier)) return render(self.request, "pretixbase/cachedfiles/pending.html", {}) else: resp = FileResponse(ct.file.file, content_type=ct.type)