Files @ b9853a3cc254
Branch filter:

Location: kallithea/init.d/celeryd-upstart.conf

domruf
celery: simplify internal configuration and app creation

We used celery.app.app_or_default() which creates a "global fallback app
instance" which relies on the CELERY_LOADER environment variable to load the
configuration. That worked but was messy.

Instead, do something more like described in
http://docs.celeryproject.org/en/3.1/userguide/application.html where the app
is a celery.Celery() instance and configuration is loaded explicitly by its
config_from_object method. Using config_from_object we don't need explicit
invocation of import_default_modules and can take pass PylonsSettingsProxy
directly, leaving PylonsLoader unused and removed.

Modified by Mads Kiilerich.
# celeryd - run the celeryd daemon as an upstart job for kallithea
# Change variables/paths as necessary and place file /etc/init/celeryd.conf
# start/stop/restart as normal upstart job (ie: $ start celeryd)

description     "Celery for Kallithea Mercurial Server"
author          "Matt Zuba <matt.zuba@goodwillaz.org"

start on starting kallithea
stop on stopped kallithea

respawn

umask 0022

env PIDFILE=/tmp/celeryd.pid
env APPINI=/var/hg/kallithea/production.ini
env HOME=/var/hg
env USER=hg
# To use group (if different from user), you must edit sudoers file and change
# root's entry from (ALL) to (ALL:ALL)
# env GROUP=hg

script
    COMMAND="/var/hg/.virtualenvs/kallithea/bin/gearbox celeryd -c $APPINI -- --pidfile=$PIDFILE"
    if [ -z "$GROUP" ]; then
        exec sudo -u $USER $COMMAND
    else
        exec sudo -u $USER -g $GROUP $COMMAND
    fi
end script

post-stop script
    rm -f $PIDFILE
end script