Mercurial > kallithea
view init.d/celeryd-upstart.conf @ 8162:193138922d56
celery: introduce make_app instead of creating app at import time
It is dirty to instantiate things at import time (unless it really is basic
singletons).
In 0.5.1 (and earlier), such dirtyness made partial test execution fail when
other things had global side effects and things didn't use the usual import
order:
$ py.test kallithea/lib/
collecting ...
――― kallithea/lib/celerypylons/__init__.py ―――
kallithea/lib/celerypylons/__init__.py:58: in <module>
app.config_from_object(celery_config(tg.config))
kallithea/lib/celerypylons/__init__.py:28: in celery_config
assert config['celery.imports'] == 'kallithea.lib.celerylib.tasks', 'Kallithea Celery configuration has not been loaded'
data/env/lib/python2.7/site-packages/tg/configuration/tgconfig.py:31: in __getitem__
return self.config_proxy.current_conf()[key]
E KeyError: 'celery.imports'
Avoid that by running a "factory" function when the celery app actually is
needed.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sat, 25 Jan 2020 20:18:59 +0100 |
parents | 1d539bb18165 |
children |
line wrap: on
line source
# 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/kallithea-cli celery-run -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