Удаление 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 получает задание на удаление, экземпляр модели уже удален.
Может ли кто-нибудь подсказать мне, как сделать процесс удаления асинхронным?