celery -A proj report
en la edición.software -> apio: 4.0.2 (llamada latente) kombu: 4.1.0 py: 2.7.13 o (py: 2.7.12)
billar: 3.5.0.3 redis: 2.10.5
plataforma -> sistema: Darwin arch: 64bit imp: CPython. (aunque normalmente: sistema: Linux arch: 64bit, ELF)
cargador -> celery.loaders.app.AppLoader
configuración -> transporte: redis resultados: redis : // localhost: 6380 /
BROKER_TRANSPORT_OPTIONS: {
'fanout_patterns': Verdadero, 'fanout_prefix': Verdadero}
CELERY_TASK_COMPRESSION: 'gzip'
CELERY_TIMEZONE: 'UTC'
CELERY_RESULT_SERIALIZER: 'json'
CELERY_BROKER_URL: u ' redis: // localhost : 6380 //'
CELERY_TASK_SERIALIZER: 'json'
CELERY_RESULT_EXPIRES: 60
CELERY_ACCEPT_CONTENT: ['application / json']
TIME_ZONE: 'UTC'
CELERY_MESSAGE_COMPRESSION: 'gzip'
CELERY_TASK_ALWAYS_EAGER: Falso
CELERY_RESULT_BACKEND: u ' redis: // localhost : 6380 /'
master
de Apio.También ocurre en el apio 4.1.0.
Intente usar el módulo control
. En mi caso, obtengo el active_queues()
.
Espero que mientras el sistema esté en buen estado, debería poder obtener la información desde el módulo control
. No entiendo exactamente por qué a veces la piscina está cerrada y otras veces no.
Este podría ser el mismo problema que en el n. ° 1839
El código tendrá un error de tiempo de ejecución, por lo que no puedo consultar los datos que necesito de apio.
File "/.../tasks.py", line 80, in workers_on_queue
for k, v in six.viewitems(celery_app.control.inspect().active_queues()):
File "/.../lib/python2.7/site-packages/celery/app/control.py", line 116, in active_queues
return self._request('active_queues')
File "/.../lib/python2.7/site-packages/celery/app/control.py", line 81, in _request
timeout=self.timeout, reply=True,
File "/.../lib/python2.7/site-packages/celery/app/control.py", line 436, in broadcast
limit, callback, channel=channel,
File "/.../lib/python2.7/site-packages/kombu/pidbox.py", line 315, in _broadcast
serializer=serializer)
File "/.../lib/python2.7/site-packages/kombu/pidbox.py", line 285, in _publish
with self.producer_or_acquire(producer, chan) as producer:
File "/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/.../lib/python2.7/site-packages/kombu/pidbox.py", line 247, in producer_or_acquire
with self.producer_pool.acquire() as producer:
File "/.../lib/python2.7/site-packages/kombu/resource.py", line 74, in acquire
raise RuntimeError('Acquire on closed pool')
Esto solo sucede cuando usamos el módulo control
. A veces funciona bien.
Esta ruta de código estaba incluso en un bucle de reintento, por lo que al final aún no se pudo ejecutar.
He estado viendo esto por todas partes después de actualizar a celery 4 desde 3.1, prácticamente en cualquier lugar donde necesite llamar al controlador de la aplicación de apio, esto es necesario:
https://github.com/ansible/awx/commit/9ee77a95c6686b266f3ab7105c8d5be7766e6f05
por favor envíe un pr si tiene alguna solución propuesta. No estoy seguro de si está arreglado en el maestro, por lo que también puede probar los últimos cambios del maestro.
ping si todavía existe en 4.4+
Comentario más útil
He estado viendo esto por todas partes después de actualizar a celery 4 desde 3.1, prácticamente en cualquier lugar donde necesite llamar al controlador de la aplicación de apio, esto es necesario:
https://github.com/ansible/awx/commit/9ee77a95c6686b266f3ab7105c8d5be7766e6f05