forked from CGM_Public/pretix_original
Use transaction aware task for regenerate_css
This commit is contained in:
@@ -106,3 +106,15 @@ class TransactionAwareTask(ProfiledTask):
|
|||||||
transaction.on_commit(
|
transaction.on_commit(
|
||||||
lambda: super(TransactionAwareTask, self).apply_async(*args, **kwargs)
|
lambda: super(TransactionAwareTask, self).apply_async(*args, **kwargs)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TransactionAwareProfiledEventTask(ProfiledEventTask):
|
||||||
|
|
||||||
|
def apply_async(self, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Unlike the default task in celery, this task does not return an async
|
||||||
|
result
|
||||||
|
"""
|
||||||
|
transaction.on_commit(
|
||||||
|
lambda: super(TransactionAwareProfiledEventTask, self).apply_async(*args, **kwargs)
|
||||||
|
)
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ from django.templatetags.static import static as _static
|
|||||||
from django_scopes import scope
|
from django_scopes import scope
|
||||||
|
|
||||||
from pretix.base.models import Event, Event_SettingsStore, Organizer
|
from pretix.base.models import Event, Event_SettingsStore, Organizer
|
||||||
from pretix.base.services.tasks import ProfiledEventTask, ProfiledTask
|
from pretix.base.services.tasks import (
|
||||||
|
TransactionAwareProfiledEventTask, TransactionAwareTask,
|
||||||
|
)
|
||||||
from pretix.celery_app import app
|
from pretix.celery_app import app
|
||||||
from pretix.multidomain.urlreverse import get_domain
|
from pretix.multidomain.urlreverse import get_domain
|
||||||
from pretix.presale.signals import sass_postamble, sass_preamble
|
from pretix.presale.signals import sass_postamble, sass_preamble
|
||||||
@@ -79,7 +81,7 @@ def compile_scss(object, file="main.scss", fonts=True):
|
|||||||
return css, checksum
|
return css, checksum
|
||||||
|
|
||||||
|
|
||||||
@app.task(base=ProfiledEventTask)
|
@app.task(base=TransactionAwareProfiledEventTask)
|
||||||
def regenerate_css(event):
|
def regenerate_css(event):
|
||||||
# main.scss
|
# main.scss
|
||||||
css, checksum = compile_scss(event)
|
css, checksum = compile_scss(event)
|
||||||
@@ -100,7 +102,7 @@ def regenerate_css(event):
|
|||||||
event.settings.set('presale_widget_css_checksum', checksum)
|
event.settings.set('presale_widget_css_checksum', checksum)
|
||||||
|
|
||||||
|
|
||||||
@app.task(base=ProfiledTask)
|
@app.task(base=TransactionAwareTask)
|
||||||
def regenerate_organizer_css(organizer_id: int):
|
def regenerate_organizer_css(organizer_id: int):
|
||||||
organizer = Organizer.objects.get(pk=organizer_id)
|
organizer = Organizer.objects.get(pk=organizer_id)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user