diff --git a/apps/ops/signal_handlers.py b/apps/ops/signal_handlers.py index b1d2c39f3..29add5bcb 100644 --- a/apps/ops/signal_handlers.py +++ b/apps/ops/signal_handlers.py @@ -1,17 +1,15 @@ import ast -from celery import signals -from django.db import transaction +from celery import signals from django.core.cache import cache +from django.db import transaction from django.db.models.signals import pre_save -from django.dispatch import receiver from django.db.utils import ProgrammingError +from django.dispatch import receiver from django.utils import translation, timezone from django.utils.translation import gettext as _ -from common.signals import django_ready from common.db.utils import close_old_connections, get_logger - from .celery import app from .models import CeleryTaskExecution, CeleryTask, Job @@ -27,8 +25,12 @@ def on_account_pre_create(sender, instance, **kwargs): instance.version += 1 -@receiver(django_ready) +@receiver(signals.worker_ready) def sync_registered_tasks(*args, **kwargs): + synced = cache.get('synced_registered_tasks', False) + if synced: + return + cache.set('synced_registered_tasks', True, 60) with transaction.atomic(): try: db_tasks = CeleryTask.objects.all()