Se inicia apio 4.x (con correcciones # 4078) pero todas las tareas fallan
Utilice el tutorial Primeros pasos (http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
apio -Un trabajador de tareas --loglevel = info
add.delay (2,2)
La tarea se ejecuta y se produce un resultado de 4
El apio se estrella.
"C: \ Archivos de programa \ Python36 \ Scripts \ celery.exe" -A perse.celery worker -l info
-------------- apio @ PETRUS v4.0.2 (llamada latente)
--- * * * - Windows-10-10.0.14393-SP0 2017-06-08 15:31:22
-------------- [colas]
.> intercambio de apio = apio (directo) clave = apio
[Tareas]
. perse.tasks.celery_add
[2017-06-08 15: 31: 22,685: INFO / MainProcess] Conectado a amqp: // invitado : *@127.0.0.1: 5672 //[2017-06-08 15: 31: 22,703: INFO / MainProcess] mingle: buscando vecinos[2017-06-08 15: 31: 23,202: INFO / SpawnPoolWorker-5] proceso hijo 5124 llamando a self.run ()[2017-06-08 15: 31: 23,207: INFO / SpawnPoolWorker-4] proceso hijo 10848 llamando a self.run ()[2017-06-08 15: 31: 23,208: INFO / SpawnPoolWorker-10] proceso secundario 5296 llamando a self.run ()[2017-06-08 15: 31: 23,214: INFO / SpawnPoolWorker-1] proceso secundario 5752 llamando a self.run ()[2017-06-08 15: 31: 23,218: INFO / SpawnPoolWorker-3] proceso hijo 11868 llamando a self.run ()[2017-06-08 15: 31: 23,226: INFO / SpawnPoolWorker-11] proceso hijo 9544 llamando a self.run ()[2017-06-08 15: 31: 23,227: INFO / SpawnPoolWorker-6] proceso hijo 16332 llamando a self.run ()[2017-06-08 15: 31: 23,229: INFO / SpawnPoolWorker-8] proceso hijo 3384 llamando a self.run ()[2017-06-08 15: 31: 23,234: INFO / SpawnPoolWorker-12] proceso secundario 8020 llamando a self.run ()[2017-06-08 15: 31: 23,241: INFO / SpawnPoolWorker-9] proceso hijo 15612 llamando a self.run ()[2017-06-08 15: 31: 23,243: INFO / SpawnPoolWorker-7] proceso secundario 9896 llamando a self.run ()[2017-06-08 15: 31: 23,245: INFO / SpawnPoolWorker-2] proceso hijo 260 llamando a self.run ()[2017-06-08 15: 31: 23,730: INFO / MainProcess] mezclarse: solo[2017-06-08 15: 31: 23,747: INFO / MainProcess] apio @ PETRUS listo.[2017-06-08 15: 31: 49,412: INFO / MainProcess] Tarea recibida: perse.tasks.celery_add [524d788e-e024-493d-9ed9-4b009315fea3][2017-06-08 15: 31: 49,416: ERROR / MainProcess] El controlador de tareas generó un error: ValueError ('no hay suficientes valores para descomprimir (esperado 3, obtuvo 0)',)Rastreo (llamadas recientes más última):Archivo "c: \ archivos de programa \ python36 \ lib \ site-packages \ billiard \ pool.py", línea 359, en workloopresultado = (Verdadero, prepare_result (divertido ( argumentos, ** kwargs)))
Archivo "c: \ archivos de programa \ python36 \ lib \ site-packages \ celery \ app \ trace.py", línea 518, en _fast_trace_task
tareas, aceptar, nombre de host = _loc
ValueError: no hay suficientes valores para descomprimir (esperado 3, obtuvo 0)
Ver solicitud de extracción n. ° 4078
FWIW He solucionado este problema utilizando la implementación del grupo de eventos (opción de línea de comandos "-P eventlet").
La solución de @drewdogg debe mencionarse en el tutorial.
Tengo que confirmar: este error aparece en
Celery 4.1.0
Windows 10 Enterprise 64 bit
al ejecutar el comando celery -A <mymodule> worker -l info
y la siguiente solución alternativa funciona:
pip install eventlet
celery -A <mymodule> worker -l info -P eventlet
es suficiente definir FORKED_BY_MULTIPROCESSING = 1 variable de entorno para la instancia del trabajador.
@auvipy Trabaja para mí, gracias.
@auvipy realmente resuelve el problema :) 👍
agregar:
importar sistema operativo
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
antes de definir la instancia de Apio es suficiente
tal vez esto debería mencionarse en los documentos? @wonderfulsuccess ¿te importa enviar una solicitud de extracción?
@wonderfulsuccess
Muchas gracias
@auvipy realmente resuelve el problema
agregar:
importar sistema operativo
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
antes de definir la instancia de Apio es suficiente
¡Gracias está trabajado!
@auvipy si esto es solo una línea de código para corregir, entonces ¿por qué no arreglarlo dentro de apio, en lugar de usar los documentos para recomendar a los usuarios que implementen una solución alternativa? ¿Por qué un error que rompe completamente la plataforma con una solución tan simple sigue siendo un problema después de casi 2 años?
¿Dónde quieres que el apio ponga esto? Creo que esto es adecuado para instrucciones específicas de Windows. si desea arreglarlo en el nivel de código, venga con un PR apropiado.
@auvipy realmente resuelve el problema :) 👍
agregar:
importar sistema operativo
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING', '1')
antes de definir la instancia de Apio es suficiente
¡Eres increíble, muchas gracias!
@auvipy He estado buscando una respuesta a este problema, he pasado mucho tiempo intentando solucionarlo, muchas gracias.
Comentario más útil
Tengo que confirmar: este error aparece en
al ejecutar el comando
celery -A <mymodule> worker -l info
y la siguiente solución alternativa funciona: