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.

Requirements

  • 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

Installation

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

Usage

Haystack 1.X


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

   .. code:: python

     INSTALLED_APPS = [
         # ..
         'celery_haystack',
     ]

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

   .. 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

    INSTALLED_APPS = [

    ..

     'celery_haystack',

    ]

  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.

Thanks

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/

Issues

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

awesome-django

awesome-django

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

awesome-python-cn

awesome-python-cn

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

django-celery-haystack-SearchIndex

django-celery-haystack-SearchIndex

A QueuedSearchIndex built with celery ...

Telemeta

Telemeta

Collaborative multimedia asset management system ...

djKarma

djKarma

...


Top Contributors

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

Releases

-   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