mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Export tasks: Request new database connection after completing output
This commit is contained in:
@@ -26,7 +26,7 @@ from typing import Any, Dict, Union
|
|||||||
from celery.exceptions import MaxRetriesExceededError
|
from celery.exceptions import MaxRetriesExceededError
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.db import connection, transaction
|
from django.db import close_old_connections, connection, transaction
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils.timezone import now, override
|
from django.utils.timezone import now, override
|
||||||
from django.utils.translation import gettext
|
from django.utils.translation import gettext
|
||||||
@@ -86,6 +86,9 @@ def export(self, event: Event, fileid: str, provider: str, form_data: Dict[str,
|
|||||||
gettext('Your export did not contain any data.')
|
gettext('Your export did not contain any data.')
|
||||||
)
|
)
|
||||||
file.filename, file.type, data = d
|
file.filename, file.type, data = d
|
||||||
|
|
||||||
|
close_old_connections() # This task can run very long, we might need a new DB connection
|
||||||
|
|
||||||
f = ContentFile(data)
|
f = ContentFile(data)
|
||||||
file.file.save(cachedfile_name(file, file.filename), f)
|
file.file.save(cachedfile_name(file, file.filename), f)
|
||||||
return str(file.pk)
|
return str(file.pk)
|
||||||
@@ -154,6 +157,9 @@ def multiexport(self, organizer: Organizer, user: User, device: int, token: int,
|
|||||||
gettext('Your export did not contain any data.')
|
gettext('Your export did not contain any data.')
|
||||||
)
|
)
|
||||||
file.filename, file.type, data = d
|
file.filename, file.type, data = d
|
||||||
|
|
||||||
|
close_old_connections() # This task can run very long, we might need a new DB connection
|
||||||
|
|
||||||
f = ContentFile(data)
|
f = ContentFile(data)
|
||||||
file.file.save(cachedfile_name(file, file.filename), f)
|
file.file.save(cachedfile_name(file, file.filename), f)
|
||||||
return str(file.pk)
|
return str(file.pk)
|
||||||
@@ -214,6 +220,9 @@ def _run_scheduled_export(schedule, context: Union[Event, Organizer], exporter,
|
|||||||
raise ExportError(
|
raise ExportError(
|
||||||
gettext('Your exported data exceeded the size limit for scheduled exports.')
|
gettext('Your exported data exceeded the size limit for scheduled exports.')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
close_old_connections() # This task can run very long, we might need a new DB connection
|
||||||
|
|
||||||
f = ContentFile(data)
|
f = ContentFile(data)
|
||||||
file.file.save(cachedfile_name(file, file.filename), f)
|
file.file.save(cachedfile_name(file, file.filename), f)
|
||||||
except ExportEmptyError as e:
|
except ExportEmptyError as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user