* Celery deployment configs
This commit is contained in:
parent
058f2b8a2d
commit
5120a4a266
28
_deploy/celery
Normal file
28
_deploy/celery
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Name of nodes to start
|
||||
# here we have a single node
|
||||
CELERYD_NODES="w1"
|
||||
# or we could have three nodes:
|
||||
#CELERYD_NODES="w1 w2 w3"
|
||||
|
||||
# Absolute or relative path to the 'celery' command:
|
||||
CELERY_BIN="/var/www/phzhik-poizonstore/env/bin/celery"
|
||||
|
||||
# App instance to use
|
||||
CELERY_APP="poizonstore"
|
||||
|
||||
# How to call manage.py
|
||||
CELERYD_MULTI="multi"
|
||||
|
||||
# Extra command-line arguments to the worker
|
||||
CELERYD_OPTS=""
|
||||
|
||||
# - %n will be replaced with the first part of the nodename.
|
||||
# - %I will be replaced with the current child process index
|
||||
# and is important when using the prefork pool to avoid race conditions.
|
||||
CELERYD_PID_FILE="/var/run/celery/%n.pid"
|
||||
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
|
||||
CELERYD_LOG_LEVEL="INFO"
|
||||
|
||||
# you may wish to add these options for Celery Beat
|
||||
CELERYBEAT_PID_FILE="/var/run/celery/beat.pid"
|
||||
CELERYBEAT_LOG_FILE="/var/log/celery/beat.log"
|
||||
24
_deploy/celery.service
Normal file
24
_deploy/celery.service
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
[Unit]
|
||||
Description=Celery Service
|
||||
After=network.target
|
||||
Requires=redis.service
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User=celery
|
||||
Group=celery
|
||||
EnvironmentFile=/etc/default/celery
|
||||
WorkingDirectory=/var/www/phzhik-poizonstore
|
||||
ExecStart=/bin/sh -c '${CELERY_BIN} -A $CELERY_APP multi start $CELERYD_NODES \
|
||||
--pidfile=${CELERYD_PID_FILE} --logfile=${CELERYD_LOG_FILE} \
|
||||
--loglevel="${CELERYD_LOG_LEVEL}" $CELERYD_OPTS'
|
||||
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait $CELERYD_NODES \
|
||||
--pidfile=${CELERYD_PID_FILE} --logfile=${CELERYD_LOG_FILE} \
|
||||
--loglevel="${CELERYD_LOG_LEVEL}"'
|
||||
ExecReload=/bin/sh -c '${CELERY_BIN} -A $CELERY_APP multi restart $CELERYD_NODES \
|
||||
--pidfile=${CELERYD_PID_FILE} --logfile=${CELERYD_LOG_FILE} \
|
||||
--loglevel="${CELERYD_LOG_LEVEL}" $CELERYD_OPTS'
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
17
_deploy/celerybeat.service
Normal file
17
_deploy/celerybeat.service
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Celery Beat Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=celery
|
||||
Group=celery
|
||||
EnvironmentFile=/etc/default/celery
|
||||
WorkingDirectory=/var/www/phzhik-poizonstore
|
||||
ExecStart=/bin/sh -c '${CELERY_BIN} -A ${CELERY_APP} beat \
|
||||
--pidfile=${CELERYBEAT_PID_FILE} \
|
||||
--logfile=${CELERYBEAT_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL}'
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
@ -40,4 +40,8 @@ server {
|
|||
include /etc/nginx/uwsgi_params;
|
||||
include /etc/nginx/proxy_params;
|
||||
}
|
||||
|
||||
location /flower/ {
|
||||
proxy_pass http://localhost:5555/flower/;
|
||||
}
|
||||
}
|
||||
13
_deploy/run_celery_flower.sh
Executable file
13
_deploy/run_celery_flower.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
WORK_DIR="/var/www/phzhik-poizonstore/env/bin"
|
||||
PROJECT_NAME="poizonstore"
|
||||
|
||||
# Wait for worker to start
|
||||
until timeout 10s $WORK_DIR/celery -A $PROJECT_NAME inspect ping; do
|
||||
>&2 echo "Celery workers not available"
|
||||
done
|
||||
|
||||
# Run flower for Celery management
|
||||
echo 'Starting Celery flower'
|
||||
$WORK_DIR/celery -A $PROJECT_NAME flower --port=5555 --url_prefix=/flower --basic-auth=admin:meowmeow
|
||||
|
|
@ -25,7 +25,5 @@ chmod-socket = 664
|
|||
# clear environment on exit
|
||||
vacuum = true
|
||||
|
||||
smart-attach-daemon = /tmp/celery-main.pid /var/www/phzhik-poizonstore/run_celery.sh
|
||||
|
||||
env = LANG=C.UTF-8
|
||||
enable-threads = true
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
WORK_DIR="/var/www/phzhik-poizonstore/env/bin"
|
||||
PROJECT_NAME="poizonstore"
|
||||
|
||||
# Run Celery worker
|
||||
echo 'Starting Celery worker'
|
||||
$WORK_DIR/celery -A $PROJECT_NAME worker -l INFO --pidfile=/tmp/celery.pid &
|
||||
|
||||
# Wait for worker to start
|
||||
until timeout 10s $WORK_DIR/celery -A $PROJECT_NAME inspect ping; do
|
||||
>&2 echo "Celery workers not available"
|
||||
done
|
||||
|
||||
# Run flower for Celery management
|
||||
echo 'Starting Celery flower'
|
||||
$WORK_DIR/celery -A $PROJECT_NAME flower --pidfile=/tmp/celery-flower.pid &
|
||||
|
||||
# Run celery beat for periodic tasks
|
||||
echo 'Starting Celery beat'
|
||||
$WORK_DIR/celery -A $PROJECT_NAME beat -l INFO --pidfile=/tmp/celery-beat.pid &
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
killall celery
|
||||
Loading…
Reference in New Issue
Block a user