La semana pasada configuré RabbitMQ y Apile en mi sistema de producción después de haberlo probado en mi desarrollador local y todo funcionó bien.Rabbitmq aplery aplerybeat no está ejecutando tareas en producción como Daemon
Tengo la sensación de que mis tareas no se están ejecutando en producción, ya que tengo unas 1200 tareas que todavía están en la cola.
corro un 5,4 instalación de CentOS, con celeryd
y celerybeat
demonios y WSGI me han hecho la importación en el módulo wsgi.
Cuando corro, /etc/init.d/celeryd start
Me da la siguiente respuesta
[[email protected] myproject]# /etc/init.d/celeryd start
celeryd-multi v2.3.1
> Starting nodes...
> w1.myvm.centos01: OK
Cuando corro /etc/init.d/celerybeat start
tengo la siguiente respuesta
[[email protected] fundedmyprojectbyme]# /etc/init.d/celerybeat start
Starting celerybeat...
Así que por la salida parece que los elementos se ejecutan successully - aunque al mirar las colas solo parecen obtener algo más que ser ejecutados.
Ahora si realizo la misma ejecución, pero use manage.py de django en su lugar ./manage.py celeryd
y ./manage.py celerybeat
, las tareas comienzan a procesarse inmediatamente.
Mis /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"
mis /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"
mis archivos de /etc/init.d para/celeryd y/celerybeat se basan en la generic scripts
me estoy perdiendo una parte de la configuración ???
Tal vez puede ser útil leer los registros que su script de inicio debería crear en/var/log /, si no se crean registros algunas veces es porque el apio tiene problemas para crear el archivo de registro. ¿Cuál es la diferencia entre su sistema de producción y su local? ¿Estás seguro de que tienen la misma versión de python? –