Desead
@Desead

Как правильно запустить планировщик?

Потребовалось запустить celery.
Вот по этому примеру всё сделал: https://qna.habr.com/q/439960
Там вроде всё понятно, но не всё работает. Подскажите кто понимает лучше меня в этом вопросе )

вот сам конфиг:
spoiler

# Common Celery Settings
CELERY_BIN="/home/desead/www/Changebox/venv/bin/celery"
CELERYD_USER="desead"
CELERYD_GROUP="www-data"
CELERY_APP="Changebox.celery:app"

# Common env settings
DJANGO_SETTINGS_MODULE=Changebox.settings
LC_ALL=ru_RU.UTF-8
LC_LANG="ru_RU.UTF-8"
LANG=ru_RU.UTF-8

# Worker settings
CELERYD_NODES="w1 w2 w3 w4 w5 w6"
CELERYD_OPTS="-Q:w1 default --autoscale:w1=8,4
-Q:w2 queue2 --autoscale:w2=6,2 \
-Q:w3 queue3 --autoscale:w3=8,2 \
....................
-Q:w6 queue6 --autoscale:w6=6,2 "

CELERYD_MULTI="multi"
CELERYD_STATE_DIR="/var/run/celery"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_LOG_LEVEL="INFO"

# Beat settings
CELERYBEAT_STATE_DIR="/var/run/celerybeat"
CELERYBEAT_PID_FILE="/var/run/celerybeat/beat.pid"
CELERYBEAT_LOG_FILE="/var/log/celery/beat.log"
CELERYBEAT_LOG_LEVEL="INFO"
CELERYBEAT_SCHEDULE="/var/run/celerybeat/schedule"
CELERYBEAT_WORKDIR="/home/desead/www/Changebox"

здесь не до конца ясен блок настройки воркера:
# Worker settings
CELERYD_NODES="w1 w2 w3 w4 w5 w6"
CELERYD_OPTS="-Q:w1 default --autoscale:w1=8,4
-Q:w2 queue2 --autoscale:w2=6,2 \
-Q:w3 queue3 --autoscale:w3=8,2 \
....................
-Q:w6 queue6 --autoscale:w6=6,2"
Во первых вот это многоточие .................... - оно же не должно быть?
Далее я себе эту область изменил вот так:
CELERYD_NODES="w1 w2 w3"
CELERYD_OPTS="-Q:w1 default --autoscale:w1=8,4"
Это значит что я оставил 3 ноды (нода я так понял это воркер + очередь ?)
и первого воркера отправил в дефолтную очередь, а куда пошли два других воркера ?
Вообщем с такими настройками всё работает и воркеров запустил удачно, файл настроек аналогичен как выше по ссылке.
А вот с планировщиком какая то неясная ситуация. Не хочет запускаться. вот сам файл настроек:
spoiler

[Unit]
Description=CeleryBeat Service
After=network.target redis.target

[Service]
Type=simple
User=desead
Group=www-data
EnvironmentFile=/etc/systemd/celery.conf
WorkingDirectory=/home/desead/www/Changebox
PermissionsStartOnly=true
ExecStartPre=-/bin/mkdir -p ${CELERYBEAT_STATE_DIR}
ExecStartPre=/bin/chown -R ${CELERYD_USER}:${CELERYD_GROUP} ${CELERYBEAT_STATE_DIR}
ExecStartPre=/bin/rm ${CELERYBEAT_SCHEDULE}
ExecStart=/bin/bash -c '${CELERY_BIN} beat \
-A ${CELERY_APP} \
--workdir=${CELERYBEAT_WORKDIR} \
--pidfile=${CELERYBEAT_PID_FILE} \
--logfile=${CELERYBEAT_LOG_FILE} \
--loglevel=${CELERYBEAT_LOG_LEVEL} \
--schedule=${CELERYBEAT_SCHEDULE}'
ExecStop=/bin/systemctl kill celerybeat_changebox.service

[Install]
WantedBy=multi-user.target

п.с. Кстати в файле настроек рабочих и планировщика есть переменная EnvironmentFile, которая = - /etc/systemd/celery.conf.
Вот так этот минус это тоже опечатка? просто она в обоих примерах есть.


вообщем когда запускаю планировщик то он не запускается. Вот что пишет:
Process: 1985 ExecStartPre=/bin/rm ${CELERYBEAT_SCHEDULE} (code=exited, status=1/FAILURE)
т.е. что то не так с названием планировщика или я не туда его отправляю, не могу понять.
При этом в журнале пишет:
Failed password for root from 103.98.119.251 port 40818 ssh2
при чём тут вообще ssh и этот непонятный IP и порт?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
Desead
@Desead Автор вопроса
Пока ответ шёл, пришлось разобраться самому.
В планировщике нужно писать вот так:
ExecStart=/bin/bash -c '${CELERY_BIN} \
-A ${CELERY_APP} beat \
--pidfile=${CELERYBEAT_PID_FILE} \
--logfile=${CELERYBEAT_LOG_FILE} \
--loglevel=${CELERYBEAT_LOG_LEVEL} \
--schedule=${CELERYBEAT_SCHEDULE}'

вместо того что стоит в начальном примере. Здесь мы убрали ключ --workdir, его уже не существует и передвинули ключ beat, сейчас он должен стоять на этом месте.
Всё остальное работает норм.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы