Estoy ejecutando apio 3.1.11 y flor 0.6.0.
Tengo una aplicación de apio configurada como tal;
# myapp.tasks.celery.py from __future__ import absolute_import from celery import Celery class Config(object): BROKER_URL = 'amqp://' CELERY_RESULT_BACKEND = 'amqp' CELERY_TASK_RESULT_EXPIRES = None CELERY_RESULT_SERIALIZER = 'json' CELERY_INCLUDE = [ 'myapp.tasks.source', 'myapp.tasks.page', 'myapp.tasks.diffusion', 'myapp.tasks.place', ] ) celery = Celery('myapp') celery.config_from_object(Config) if __name__ == '__main__': celery.start()
Ejecuto el trabajador de apio usando el siguiente comando:
$ celery -A myapp.tasks worker --loglevel=INFO -E -Q celery
Puedo ver la lista completa de tareas disponibles en la salida del trabajador.
[tasks] ... . myapp.tasks.diffusion.post_activity ...
Luego ejecuto el servidor de flores con el siguiente comando:
$ celery -A myapp.tasks flower
Ahora, cada vez que bash publicar una nueva tarea a través de la API de REST de Flower, aparece un error 404 con un mensaje de error “Tarea desconocida TASK_NAME”.
[W 140423 12:16:17 web:1302] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194): Unknown task 'myapp.tasks.diffusion.post_activity' [W 140423 12:16:17 web:1728] 404 POST /api/task/async-apply/myapp.tasks.diffusion.post_activity (82.225.61.194) 4.68ms
He puesto un punto de interrupción pdb en el controlador de API de Flower, y parece que las únicas tareas disponibles cuando se manejan las solicitudes son las siguientes:
ipdb> pp celery.tasks {'celery.backend_cleanup': , 'celery.chain': , 'celery.chord': , 'celery.chord_unlock': , 'celery.chunks': , 'celery.group': , 'celery.map': , 'celery.starmap': }
Ninguna tarea parece estar disponible. Sin embargo, cuando uso el método async_apply()
la tarea en un shell, el trabajador ejecuta la tarea.
¿Alguna idea de lo que estoy haciendo mal? ¡Gracias!
Edición : cuando estoy usando apio 3.0.19 y flor 0.5.0, funciona aparentemente.
Este error se debió a un error en Flower y ahora se ha resuelto:
Problema: https://github.com/mher/flower/issues/200
Resolución de compromiso: https://github.com/mher/flower/commit/bfba1eec90124c92586c480aebaf98ae63c31276
Estaba experimentando problemas similares con la flower
. Mi configuración estaba utilizando redis.
La situación ha mejorado en el momento en que comencé a florecer con un valor explícito para la opción “corredor” (no me pregunte por qué)
En tu situación lo intentaría
$ flower -r "amqp://"
De todos modos, también me aseguraría de que comience el celery
y la redis
desde un entorno que tenga acceso adecuado a todas sus bibliotecas.