mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Transactiontask (#268)
* Introduce TransactionAwareTask As described in https://blog.hypertrack.io/2016/10/08/dealing-with-database-transactions-in-django-celery/ * Use TransactionAwareTask instead of countdown … to prevent race conditions when using a newly created object in a task.
This commit is contained in:
committed by
Raphael Michel
parent
6c5cd56af7
commit
9db333bf80
@@ -9,6 +9,7 @@ from django.utils.translation import ugettext_noop
|
||||
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.models import Event, Order, Quota
|
||||
from pretix.base.services.async import TransactionAwareTask
|
||||
from pretix.base.services.mail import SendMailException
|
||||
from pretix.base.services.orders import mark_order_paid
|
||||
from pretix.celery import app
|
||||
@@ -95,7 +96,7 @@ def _get_unknown_transactions(event: Event, job: BankImportJob, data: list):
|
||||
return transactions
|
||||
|
||||
|
||||
@app.task
|
||||
@app.task(base=TransactionAwareTask)
|
||||
def process_banktransfers(event: int, job: int, data: list) -> None:
|
||||
with language("en"): # We'll translate error messages at display time
|
||||
event = Event.objects.get(pk=event)
|
||||
|
||||
@@ -337,7 +337,7 @@ class ImportView(EventPermissionRequiredMixin, ListView):
|
||||
'event': self.request.event.pk,
|
||||
'job': job.pk,
|
||||
'data': parsed
|
||||
}, countdown=1)
|
||||
})
|
||||
return redirect(reverse('plugins:banktransfer:import.job', kwargs={
|
||||
'event': self.request.event.slug,
|
||||
'organizer': self.request.event.organizer.slug,
|
||||
|
||||
Reference in New Issue
Block a user