Мои задачи сельдерея перестают выполняться между ними. Мой rabbitmq останавливается между ними, а затем мне нужно перезапустить его вручную. В прошлый раз (15-16 часов назад) возникла аналогичная проблема, я сделал следующее (вручную), и он снова начал работать.
Я переустановил кролик, а затем снова начал работать.
sudo apt-get --purge remove raabitmq-server
sudo apt-get install raabitmq-server
Теперь он снова показывает `
Celery - errno 111 connection refused
Ниже приведена моя конфигурация.
BROKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp://'
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT=['json']
CELERY_TIMEZONE = 'Europe/Oslo'
CELERY_ENABLE_UTC = True
CELERY_CREATE_MISSING_QUEUES = True
Пожалуйста, дайте мне знать, где я ошибаюсь?
Как его исправить?
Ч .2
Кроме того, у меня несколько очередей. Я могу запустить его в каталоге проекта, но при демонизации рабочие не берут на себя задачу. Мне все еще нужно вручную начинать сельдерей. Как я могу демозировать его?
Вот мой celerd conf.
# Name of nodes to start, here we have a single node
CELERYD_NODES="w1 w2 w3 w4"
CELERY_BIN="/usr/local/bin/celery"
# Where to chdir at start.
CELERYD_CHDIR="/var/www/fractal/parser-quicklook/"
# Python interpreter from environment, if using virtualenv
#ENV_PYTHON="/somewhere/.virtualenvs/MyProject/bin/python"
# How to call "manage.py celeryd_multi"
#CELERYD_MULTI="/usr/local/bin/celeryd-multi"
# How to call "manage.py celeryctl"
#CELERYCTL="/usr/local/bin/celeryctl"
#CELERYBEAT="/usr/local/bin/celerybeat"
# Extra arguments to celeryd
CELERYD_OPTS="--time-limit=300 --concurrency=8 -Q BBC,BGR,FASTCOMPANY,Firstpost,Guardian,IBNLIVE,LIVEMINT,Mashable,NDTV,Pandodaily,Reuters,TNW,TheHindu,ZEENEWS "
# Name of the celery config module, don't change this.
CELERY_CONFIG_MODULE="celeryconfig"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
# Workers should run as an unprivileged user.
#CELERYD_USER="nobody"
#CELERYD_GROUP="nobody"
# Set any other env vars here too!
PROJET_ENV="PRODUCTION"
# Name of the projects settings module.
# in this case is just settings and not the full path because it will change the dir to
# the project folder first.
CELERY_CREATE_DIRS=1
Celeryconfig уже представлен в части 1.
Вот моя структура каталога proj.
project
|-- main.py
|-- project
| |-- celeryconfig.py
| |-- __init__.py
|-- tasks.py
Как я могу демонизировать с очередями? Я также предоставил очереди в CELERYD_OPTS
.
Есть ли способ, которым мы можем динамически демонизировать количество очередей в сельдерее? Например, для создания недостающих очередей мы имеем CELERY_CREATE_MISSING_QUEUES = True
. Есть ли что-то похожее на демоннизацию очередей сельдерея?