Удаление ELASTICSEARCH не работает при использовании ELASTICSEARCH_DSL_SIGNAL_PROCESSOR в Celery

Мне нужно сделать процесс синхронизации elasticsearch асинхронным. Поэтому я переопределяю сигнальный процессор django-elasticsearch-dsl с CelerySignalProcessor.

ELASTICSEARCH_DSL_SIGNAL_PROCESSOR = 'core.services.elasticsearch_service.CelerySignalProcessor'

Следуя django-elasticsearch-dsl этой документации, я создаю CelerySignalProcessor.

from django_elasticsearch_dsl.signals import RealTimeSignalProcessor

class CelerySignalProcessor(RealTimeSignalProcessor):
    def handle_save(self, sender, instance, **kwargs):
        # create a celery task to do the handle_save task

    def handle_pre_delete(self, sender, instance, **kwargs):
        # create a celery task to do the handle_pre_delete task

    def handle_delete(self, sender, instance, **kwargs):
        # create a celery task to do the handle_delete task

handle_save отлично работает в Asynchronous. Но handle_pre_delete и handle_delete не работают. Когда Celery worker получает задание на удаление, экземпляр модели уже удален.

Может ли кто-нибудь подсказать мне, как сделать процесс удаления асинхронным?

Вернуться на верх