Celery и Celerybeat работают, но не запускают задачи - PullRequest
0 голосов
/ 31 января 2019

Я уже проверил свой код на локальном сервере, и я уверен, что все в порядке с моим кодом.Так что, похоже, что-то не так в конфигурации сервера.У меня есть сервер Linux (Ubuntu 16.04) и установлен nginx, redis, ... Также я создал файлы конфигурации для сельдерея и сельдерея, как показано ниже:

  • / etc / init.d / celeryd
  • / etc / default / celeryd
  • / etc / init.d / celerybeat
  • / etc / default / celerybeat

Я проверил их статус, обаиз них запущены, но когда я проверяю beat.log, он ничего не делает и показывает только «старт ...»

файл celeryd:

# Names of nodes to start
CELERYD_NODES="worker"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/home/amirali/AwesomeApp/awesome_env/bin/celery"


# App instance to use
CELERY_APP="AwesomeApp"


# Where to chdir at start. Where your manage.py is...
CELERYD_CHDIR="/home/amirali/AwesomeApp"

# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 -Ofair --concurrency=8"

# Set logging level to DEBUG
CELERYD_LOG_LEVEL="INFO"

# %n will be replaced with the first part of the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"

# Workers should run as an unprivileged user.
#   You need to create this user manually (or you can choose
#   a user/group combination that already exists (e.g., nobody).
CELERYD_USER="celery"
CELERYD_GROUP="celery"

# If enabled pid and log directories will be created if missing,
# and owned by the userid/group configured.
CELERY_CREATE_DIRS=1

файл celerybeat:

  File: /etc/default/celerybeat                                                                                                                                                              
  CELERYBEAT_LOG_LEVEL="info"
  # Absolute or relative path to the 'celery' command:
  CELERY_BIN="/home/amirali/AwesomeApp/awesome_env/bin/celery"

  CELERYBEAT_USER="celery"
  CELERYBEAT_GROUP="celery"
  # App instance to use
  # comment out this line if you don't use an app
  CELERY_APP="AwesomeApp"
  # or fully qualified:
  #CELERY_APP="proj.tasks:app"

  # Where to chdir at start.
  CELERYBEAT_CHDIR="/home/amirali/AwesomeApp"

  # Extra arguments to celerybeat
  CELERYBEAT_OPTS="--schedule=/var/run/celery/celerybeat-schedule"
  export DJANGO_SETTINGS_MODULE="AwesomeApp.settings"

1 Ответ

0 голосов
/ 14 февраля 2019

Когда нам приходилось реализовывать периодические задачи с сельдереем, оказалось, что celery-beat не работает должным образом, в какой-то момент он просто останавливал задачи запуска.

После некоторых тестов мы решили больше не тратить время на это и положиться на утилиту linux crontab

...