mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Scheduled exports: Lock exports while setting their new time
This commit is contained in:
@@ -26,6 +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
|
||||||
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
|
||||||
@@ -331,7 +332,7 @@ def run_scheduled_exports(sender, **kwargs):
|
|||||||
qs = ScheduledEventExport.objects.filter(
|
qs = ScheduledEventExport.objects.filter(
|
||||||
schedule_next_run__lt=now(),
|
schedule_next_run__lt=now(),
|
||||||
error_counter__lt=5,
|
error_counter__lt=5,
|
||||||
).select_related('event')
|
).select_for_update(skip_locked=connection.features.has_select_for_update_skip_locked).select_related('event')
|
||||||
for s in qs:
|
for s in qs:
|
||||||
scheduled_event_export.apply_async(kwargs={
|
scheduled_event_export.apply_async(kwargs={
|
||||||
'event': s.event_id,
|
'event': s.event_id,
|
||||||
@@ -342,7 +343,7 @@ def run_scheduled_exports(sender, **kwargs):
|
|||||||
qs = ScheduledOrganizerExport.objects.filter(
|
qs = ScheduledOrganizerExport.objects.filter(
|
||||||
schedule_next_run__lt=now(),
|
schedule_next_run__lt=now(),
|
||||||
error_counter__lt=5,
|
error_counter__lt=5,
|
||||||
).select_related('organizer')
|
).select_for_update(skip_locked=connection.features.has_select_for_update_skip_locked).select_related('organizer')
|
||||||
for s in qs:
|
for s in qs:
|
||||||
scheduled_organizer_export.apply_async(kwargs={
|
scheduled_organizer_export.apply_async(kwargs={
|
||||||
'organizer': s.organizer_id,
|
'organizer': s.organizer_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user