celery -A proj report
na edição.software -> aipo: 4.0.2 (latentcall) kombu: 4.1.0 py: 2.7.13 ou (py: 2.7.12)
bilhar: 3.5.0.3 redis: 2.10.5
plataforma -> sistema: Darwin arch: 64 bits imp: CPython. (embora geralmente: sistema: Linux arch: 64 bits, ELF)
loader -> celery.loaders.app.AppLoader
settings -> transport: redis results: redis : // localhost: 6380 /
BROKER_TRANSPORT_OPTIONS: {
'fanout_patterns': True, 'fanout_prefix': True}
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
do aipo.Também ocorre no aipo 4.1.0.
Tente usar o módulo control
. No meu caso, estou recebendo active_queues()
.
Espero que, desde que o sistema esteja em bom estado, eu consiga obter as informações de dentro do módulo control
. Não entendo exatamente porque às vezes a piscina está fechada e outras vezes não.
Este pode ser o mesmo problema que em # 1839
O código terá um erro de tempo de execução, portanto, não posso consultar os dados de que preciso do aipo.
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')
Isso só acontece quando estamos usando o módulo control
. Às vezes funciona bem.
Esse caminho de código estava até mesmo em um loop de repetição, portanto, no final, ele ainda falhou ao executar.
Tenho visto isso em todo lugar depois de atualizar para o aipo 4 do 3.1, praticamente em qualquer lugar que eu precise chamar no controlador do aplicativo de aipo, isso é necessário:
https://github.com/ansible/awx/commit/9ee77a95c6686b266f3ab7105c8d5be7766e6f05
por favor envie um pr se você tiver alguma solução proposta. não tenho certeza se está corrigido no master, então você também pode tentar as últimas alterações do master
ping se ainda existir no 4.4+
Comentários muito úteis
Tenho visto isso em todo lugar depois de atualizar para o aipo 4 do 3.1, praticamente em qualquer lugar que eu precise chamar no controlador do aplicativo de aipo, isso é necessário:
https://github.com/ansible/awx/commit/9ee77a95c6686b266f3ab7105c8d5be7766e6f05