Metadata-Version: 2.0
Name: birdhousebuilder.recipe.celery
Version: 0.1.1
Summary: A Buildout recipe to install and configure Celery for Birdhouse.
Home-page: https://github.com/bird-house/birdhousebuilder.recipe.celery
Author: Birdhouse
Author-email: UNKNOWN
License: BSD
Keywords: buildout recipe birdhouse conda celery
Platform: UNKNOWN
Classifier: Framework :: Buildout
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: BSD License
Requires-Dist: Mako
Requires-Dist: birdhousebuilder.recipe.conda
Requires-Dist: birdhousebuilder.recipe.supervisor
Requires-Dist: setuptools
Requires-Dist: zc.buildout
Requires-Dist: zc.recipe.egg
Provides-Extra: tests
Requires-Dist: manuel; extra == 'tests'
Requires-Dist: zc.buildout; extra == 'tests'
Requires-Dist: zope.testing; extra == 'tests'

******************************
birdhousebuilder.recipe.celery
******************************

.. image:: https://travis-ci.org/bird-house/birdhousebuilder.recipe.celery.svg?branch=master
   :target: https://travis-ci.org/bird-house/birdhousebuilder.recipe.celery
   :alt: Travis Build

.. contents::

Introduction
************

``birdhousebuilder.recipe.celery`` is a `Buildout <http://buildout.org/>`_ recipe to install and configure `Celery <http://www.celeryproject.org/>`_ Distributed Task Queue with `Anaconda <http://www.continuum.io/>`_.
This recipe is used by the `Birdhouse <http://bird-house.github.io/>`_ project. 

The recipe is based on `collective.recipe.celery <https://pypi.python.org/pypi/collective.recipe.celery>`_.


Usage
*****

The recipe requires that Anaconda is already installed. It assumes that the default Anaconda location is in your home directory ``~/anaconda``. Otherwise you need to set the ``ANACONDA_HOME`` environment variable or the Buildout option ``anaconda-home``.

It installs the ``celery`` package from a conda channel  in a conda enviroment named ``birdhouse``. The location of the birdhouse environment is ``.conda/envs/birdhouse``. It deploys a `Supervisor <http://supervisord.org/>`_ configuration for Celery in ``~/.conda/envs/birdhouse/etc/supervisor/conf.d/celery.conf``. Supervisor can be started with ``~/.conda/envs/birdhouse/etc/init.d/supervisord start``.

The recipe depends on ``birdhousebuilder.recipe.conda`` and ``birdhousebuilder.recipe.supervisor``.

Supported options
=================

This recipe supports the following options:

**anaconda-home**
   Buildout option with the root folder of the Anaconda installation. Default: ``$HOME/anaconda``.
   The default location can also be set with the environment variable ``ANACONDA_HOME``. Example::

     export ANACONDA_HOME=/opt/anaconda

Search priority is:

1. ``anaconda-home`` in ``buildout.cfg``
2. ``$ANACONDA_HOME``
3. ``$HOME/anaconda``

**app**
   The application instance to use for the celery worker.

**eggs**
    A list of additional eggs you want to make available to Celery. Use this to
    add additional dependencies and the module(s) containing your task definitions.

**use-celeryconfig**
   Generate and use the ``celeryconfig.py``. Set to ``false`` if Celery is configured e.a. by `pyramid_celery <https://github.com/sontek/pyramid_celery>`_. Default: ``true``.

**use-monitor**
    If ``true`` then `Flower <https://pypi.python.org/pypi/flower>`_ is started to monitor Celery. Default: ``false``. 

Celery configuration options
----------------------------

The following configuration options are supported. See `Celery documentation <http://docs.celeryproject.org/en/latest/configuration.html>`_ for more details.

**broker-url**
    The url of the broker. Default: ``redis://localhost:6379/0``

**celery-result-backend**
    The url of the backend used to store task results. Default: ``redis://localhost:6379/0``

**celery-imports**
    List of modules to import when celery starts.

**celeryd-concurrency**
    The number of concurrent worker processes/threads/green threads executing tasks. Defaults to the number of available CPUs.

**loglevel**
    Logging level, choose between DEBUG, INFO, WARNING, ERROR, CRITICAL, or FATAL. Default: WARNING


Example usage
=============

The following example ``buildout.cfg`` installs Celery with Anaconda and default options:

.. code-block:: ini 

  [buildout]
  parts = celery

  anaconda-home = /home/myself/anaconda

  [celery]
  recipe = birdhousebuilder.recipe.celery
  app = mystuff_app
  eggs = mysuff

The next example shows a configuration with ``pyramid_celery`` and enabled Flower monitoring:

.. code-block:: ini 

  [buildout]
  parts = celery

  anaconda-home = /home/myself/anaconda

  [celery]
  recipe = birdhousebuilder.recipe.celery
  app = pyramid_celery.celery_app --ini default.ini
  eggs = mysuff
  use-celeryconfig = false
  use-monitor = true

Authors
*******

Carsten Ehbrecht ehbrecht at dkrz.de

Changes
*******

0.1.1 (2015-12-10)
==================

* Renamed celeryconfig.py template.

0.1.0 (2015-12-10)
==================

* Initial Release.


