def trigger_index_update(klass, instance_pk): try: from celery_haystack.utils import get_update_task except ImportError: return task = get_update_task() task.delay('update', get_identifier(klass(id=instance_pk)))
def process_action(action, instance, model): # Taken from celery_haystack.signals.CelerySignalProcessor.enqueue using_backends = connection_router.for_write(instance=instance) for using in using_backends: try: connection = connections[using] index = connection.get_unified_index().get_index(model) except NotHandled: continue if isinstance(index, CelerySearchIndex): if action == 'update' and not index.should_update(instance): continue identifier = get_identifier(instance) get_update_task()()(action, identifier) break
def trigger_index_update(klass, instance_pk): task = get_update_task() task.delay('update', get_identifier(klass(id=instance_pk)))
def __init__(self, *args, **kwargs): super(CelerySearchIndex, self).__init__(*args, **kwargs) self.task_cls = get_update_task() self.has_get_model = hasattr(self, 'get_model')