celery-haystack travis-ci python

An app for integrating Celery with Haystack.

5 years after

=============== celery-haystack

.. image:: https://secure.travis-ci.org/django-haystack/celery-haystack.png?branch=develop :alt: Build Status :target: http://travis-ci.org/django-haystack/celery-haystack

This Django app allows you to utilize Celery for automatically updating and deleting objects in a Haystack_ search index.


  • Django 1.4+
  • Haystack 1.2.X or 2.X_
  • Celery_ 3.X

You also need to install your choice of one of the supported search engines for Haystack and one of the supported backends for Celery.

.. Haystack: http://haystacksearch.org .. 1.2.X: http://pypi.python.org/pypi/django-haystack/1.2.5 .. _2.X: https://github.com/toastdriven/django-haystack/tree/master


Use your favorite Python package manager to install the app from PyPI, e.g.::

pip install celery-haystack

By default a few dependencies will automatically be installed:

  • django-appconf_ -- An app to gracefully handle application settings.

  • django-celery-transactions -- An app that "holds on to Celery tasks until the current database transaction is committed, avoiding potential race conditions as described in Celery's user guide."

.. django-appconf: http://pypi.python.org/pypi/django-appconf .. django-celery-transactions: https://github.com/chrisdoble/django-celery-transactions .. _Celery's user guide: http://celery.readthedocs.org/en/latest/userguide/tasks.html#database-transactions


Haystack 1.X

1. Add ``'celery_haystack'`` to the ``INSTALLED_APPS`` setting

   .. code:: python

         # ..

2. Alter all of your ``SearchIndex`` subclasses to inherit from

   .. code:: python

     from haystack import site, indexes
     from celery_haystack.indexes import CelerySearchIndex
     from myapp.models import Note

     class NoteIndex(CelerySearchIndex):
         text = indexes.CharField(document=True, model_attr='content')

     site.register(Note, NoteIndex)

3. Ensure your Celery instance is running.

Haystack 2.X
  1. Add 'celery_haystack' to the INSTALLED_APPS setting

    .. code:: python





  2. Enable the celery-haystack signal processor in the settings

    .. code:: python

    HAYSTACK_SIGNAL_PROCESSOR = 'celery_haystack.signals.CelerySignalProcessor'

  3. Alter all of your SearchIndex subclasses to inherit from celery_haystack.indexes.CelerySearchIndex and haystack.indexes.Indexable

    .. code:: python

    from haystack import indexes from celery_haystack.indexes import CelerySearchIndex from myapp.models import Note

    class NoteIndex(CelerySearchIndex, indexes.Indexable): text = indexes.CharField(document=True, model_attr='content')

     def get_model(self):
         return Note
  4. Ensure your Celery instance is running.


This app is a blatant rip-off of Daniel Lindsley's queuedsearch app but uses Ask Solem Hoel's Celery instead of the equally awesome queues library by Matt Croyden.

.. _queued_search: https://github.com/toastdriven/queued_search/ .. _Celery: http://celeryproject.org/ .. _queues: http://code.google.com/p/queues/


Please use the Github issue tracker_ for any bug reports or feature requests.

.. _Github issue tracker: https://github.com/django-haystack/celery-haystack/issues

Related Repositories



A curated list of awesome Django apps, projects and resources. ...



Python资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由伯乐在线持续更新。 ...



A QueuedSearchIndex built with celery ...



Collaborative multimedia asset management system ...




Top Contributors

jezdez stefanw ntucker regadas akestner anacarolinats EnTeQuAk frewsxcv Kronuz zbyte64 joshbohde niklasae thedrow ross stephenmcd


-   v0.6.2 zip tar
-   v0.6.1 zip tar
-   v0.6 zip tar
-   v0.5 zip tar
-   v0.4 zip tar
-   v0.3.1 zip tar
-   v0.3 zip tar
-   v0.2.1 zip tar
-   v0.2 zip tar
-   v0.1.3 zip tar
-   v0.1.2 zip tar
-   v0.1.1 zip tar
-   v0.1 zip tar