SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
Список вопросов ПечатьМетки: celery python распределённая очередь заданий systemd
| RemiZOffAlex Создано: 2017-01-05 21:35:32.508484 Обновлено: 2017-01-05 21:35:32.508484 |
|---|
|
Скрипты можно взять здесь https://github.com/celery/celery/tree/4.0/extra/generic-init.d/ wget https://raw.githubusercontent.com/celery/celery/4.0/extra/generic-init.d/celeryd -O /etc/init.d/celeryd wget https://raw.githubusercontent.com/celery/celery/4.0/extra/generic-init.d/celerybeat -O /etc/init.d/celerybeat Конфигурационные файлы: /etc/default/celerybeat и /etc/default/celeryd systemd/etc/tmpfiles.d/celery.confd /var/run/celery 0755 celery celery - d /var/log/celery 0755 celery celery - /etc/tmpfiles.d/celerybeat.confd /var/run/celerybeat 0755 celery celery - d /var/log/celerybeat 0755 celery celery - d /var/lib/celerybeat 0755 celery celery - celery.conf# See # http://docs.celeryproject.org/en/latest/userguide/daemonizing.html # 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="/usr/bin/celery" # App instance to use # comment out this line if you don't use an app #CELERY_APP="proj" # or fully qualified: CELERY_APP="app.tasks" # How to call manage.py CELERYD_MULTI="multi" # Extra command-line arguments to the worker # --time-limit в секундах # --concurrency задаёт число процессов, подбирается опытным путём CELERYD_OPTS="--time-limit=3600 --concurrency=10" # - %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" # http://docs.celeryproject.org/en/latest/reference/celery.bin.beat.html CELERYBEATD_PID_FILE="/var/run/celerybeat/celerybeat.pid" CELERYBEATD_LOG_FILE="/var/log/celerybeat/celerybeat.log" CELERYBEATD_SHEDULE_FILE="/var/lib/celerybeat/celerybeat-shedule" celery.service
[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
User=celery
Group=celery
EnvironmentFile=-/etc/celery.conf
WorkingDirectory=/opt/myproject/
ExecStart=${CELERY_BIN} multi start ${CELERYD_NODES} -A \
${CELERY_APP} --logfile=${CELERYD_LOG_FILE} \
--pidfile=${CELERYD_PID_FILE} ${CELERYD_OPTS}
ExecStop=${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}
ExecReload=${CELERY_BIN} multi restart ${CELERYD_NODES} -A \
${CELERY_APP} --pidfile=${CELERYD_PID_FILE} --logfile=${CELERYD_LOG_FILE} \
--loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}
[Install]
WantedBy=multi-user.target
celerybeat.service
[Unit]
Description=Celery beat
After=network.target celery.service
[Service]
Type=forking
User=celery
Group=celery
EnvironmentFile=-/etc/celery.conf
WorkingDirectory=/opt/myproject/
ExecStart=/usr/bin/celery beat -A ${CELERY_APP} --detach \
--pidfile=${CELERYBEATD_PID_FILE} \
--logfile=${CELERYBEATD_LOG_FILE} \
--loglevel=${CELERYD_LOG_LEVEL} \
--schedule=${CELERYBEATD_SHEDULE_FILE}
ExecStop=/bin/systemctl kill celerybeat.service
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Установкаcp celery.conf /etc/ cp celery.service /etc/systemd/system/ cp celerybeat.service /etc/systemd/system/ systemd-tmpfiles --create systemctl enable celery.service systemctl enable celerybeat.service Использование
systemctl {start|stop|restart|status} celery.service
systemctl {start|stop|restart|status} celerybeat.service
|