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 |