From 8fcade20acfead14ffda6d28d3ca35d4d71811f9 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Sat, 8 Jan 2022 22:26:03 +0100 Subject: [PATCH] Delay registration of on_commit hook until first action --- celery_haystack/signals.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/celery_haystack/signals.py b/celery_haystack/signals.py index afb6ec6..1c7974f 100644 --- a/celery_haystack/signals.py +++ b/celery_haystack/signals.py @@ -14,10 +14,7 @@ class CelerySignalProcessor(RealtimeSignalProcessor): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._queue = [] - - def setup(self): - transaction.on_commit(self.run_task) - super().setup() + self._on_commit_registered = False def handle_save(self, sender, instance, **kwargs): return self.enqueue('update', instance, sender, **kwargs) @@ -55,3 +52,6 @@ class CelerySignalProcessor(RealtimeSignalProcessor): if action == 'update' and not index.should_update(instance): continue self._queue.append((action, get_identifier(instance))) + + if not self._on_commit_registered: + transaction.on_commit(self.run_task) -- GitLab