W zeszłym tygodniu skonfigurowałem RabbitMQ i Selera na moim systemie produkcyjnym po przetestowaniu go na moim lokalnym dev i wszystko działało dobrze.Rabbitmq celeryd celerybeat nie wykonuje zadań w produkcji jako Daemon
Mam wrażenie, że moje zadania nie są wykonywane podczas produkcji, ponieważ mam około 1200 zadań, które wciąż znajdują się w kolejce.
Uruchomiłem konfigurację CentOS 5.4, z demonami celeryd
i celerybeat
i WSGI Dokonałem importu do modułu wsgi.
Kiedy biegnę, /etc/init.d/celeryd start
mam następującą odpowiedź
[[email protected] myproject]# /etc/init.d/celeryd start
celeryd-multi v2.3.1
> Starting nodes...
> w1.myvm.centos01: OK
Kiedy biegnę /etc/init.d/celerybeat start
mam następującą odpowiedź
[[email protected] fundedmyprojectbyme]# /etc/init.d/celerybeat start
Starting celerybeat...
więc do wyjścia wydaje się, że przedmioty są wykonywane successully - chociaż patrząc na kolejki, wydaje się, że zyskują więcej niż egzekucję.
Teraz, jeśli wykonuję to samo wykonanie, ale używam menedżera aplikacji django zamiast: ./manage.py celeryd
i ./manage.py celerybeat
, zadania natychmiast zaczynają być przetwarzane.
Moi /etc/default/celeryd
# Where to chdir at start.
CELERYD_CHDIR="/www/myproject/"
# How to call "manage.py celeryd_multi"
CELERYD_MULTI="$CELERYD_CHDIR/manage.py celeryd_multi"
# Extra arguments to celeryd
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# Name of the celery config module.
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="celery"
CELERYD_GROUP="celery"
# Name of the projects settings module.
export DJANGO_SETTINGS_MODULE="settings"
moi /etc/default/celerybeat
# Where the Django project is.
CELERYD_CHDIR="/www/myproject/"
# Name of the projects settings module.
export DJANGO_SETTINGS_MODULE="settings"
# Path to celeryd
CELERYD="/www/myproject/manage.py celeryd"
# Path to celerybeat
CELERYBEAT="/www/myproject/manage.py celerybeat"
# Extra arguments to celerybeat
CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule"
moje pliki do /etc/init.d/celeryd i/celerybeat oparte są na generic scripts
jestem brakuje część konfiguracji ???
Może być przydatna czytać dzienniki że twój skrypt init powinien utworzyć na/var/log /, jeśli nie ma jakiegoś logu tworzonego kilka razy, to dlatego, że seler ma problem z utworzeniem pliku logu. Jaka jest różnica między twoim systemem produkcyjnym a twoim lokalnym? Czy jesteś pewien, że mają tę samą wersję python? –