Articles of apio

Celery + Eventlet + solicitudes de no locking

Estoy utilizando las requests Python en los workers apio para realizar un gran número de llamadas a la API (~ 10 / s) (incluye GET, POST, PUT, DELETE). Cada solicitud toma alrededor de 5-10s para completar. Intenté ejecutar los trabajadores de apio en el grupo de eventlet , con 1000 concurrencia. Como las requests están […]

Apio: ¿hay una manera de escribir codificador / decodificador JSON personalizado?

Tengo algunos objetos que quiero enviar a tareas de apio en mi aplicación. Esos objetos obviamente no son serializables por json usando la biblioteca json predeterminada. ¿Hay una manera de hacer que el apio serialice / des-serialice esos objetos con el Encoder / Decoder JSON personalizado?

Recupere un objeto de resultado de tarea, dado un `task_id` en Celery

task_id el task_id de un celery.result.AsyncResult en una base de datos y lo relaciono con el elemento al que afecta la tarea. Esto me permite realizar una consulta para recuperar todas las task_id de tareas de las tareas relacionadas con un elemento específico. Entonces, después de recuperar el task_id de la base de datos, ¿cómo […]

Unidad de pruebas de un asíncrono en apio.

Estoy tratando de probar alguna funcionalidad de apio en el marco de pruebas de unidades de Django, pero cada vez que bash verificar un AsyncResult, las pruebas actúan como si nunca hubieran comenzado. Sé que este código funciona en un entorno real con RabbitMQ, así que me preguntaba por qué no funcionaba al usar el […]

Seguimiento en tiempo real del progreso de las tareas de apio.

Tengo una tarea principal de apio que inicia múltiples subtareas (miles) realizando múltiples acciones (las mismas acciones por subtarea). Lo que quiero es, desde la tarea principal del apio hasta el seguimiento en tiempo real de cada acción, cuántas se realizan y cuántas fallan en cada subtarea. ¡En resumen! Tarea principal: recibir una lista de […]

cómo configurar y ejecutar apio trabajador en sistema remoto

estoy trabajando en apio y utilizando el servidor rabbitmq y creé un proyecto en el proyecto django en un servidor (donde existe la cola de mensajes, la base de datos) y está funcionando bien, también he creado varios trabajadores from kombu import Exchange, Queue CELERY_CONCURRENCY = 8 CELERY_ACCEPT_CONTENT = [‘pickle’, ‘json’, ‘msgpack’, ‘yaml’] CELERY_RESULT_BACKEND = […]

¿Cuál es la mejor opción para una cola de tareas (Python 3) en Windows ahora que Celery 4 ha eliminado el soporte de Windows?

Ejecutamos un sitio de Flask bajo IIS en Windows, y para las tareas fuera de proceso usamos Celery. Celery nos ha dado algunos problemas en Windows, pero por ahora estamos satisfechos con la ejecución de la versión 3.1.12, utilizando RabbitMQ / AMQP como back-end, que funciona en Windows. La nueva versión de Celery (4) ha […]

Crea colas dinámicas con apio.

Aquí está mi escenario: Cuando un usuario inicia sesión en mi sitio web, pongo en cola un montón de tareas para el usuario dado (normalmente cada tarea toma 100s de ms y hay 100s de tareas por usuario). Estas tareas se ponen en cola en la cola de celery predeterminada y tengo cientos de trabajadores […]

problemas en la configuración de las tareas de apio backend en Python

Seguí todos los pasos dados en [ http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html ] Este es el código: from __future__ import absolute_import from celery import Celery #app = Celery(‘tasks’, broker=’pyamqp://guest@localhost//’) app = Celery(‘tasks’, backend=’redis://localhost’, broker=’pyamqp://guest@localhost//’) @app.task def add(x, y): return x + y Cuando ejecuto apio trabajador usando el siguiente comando celery -A tasks worker –loglevel=info Recibo un error de […]

apio perdido latido del corazón (on_node_lost)

Acabo de actualizar a apio 3.1 y ahora veo esto en mis registros: on_node_lost – INFO – missed heartbeat from celery@queue_name for every queue/worker in my cluster. De acuerdo con los documentos, BROKER_HEARTBEAT está desactivado de forma predeterminada y no lo he configurado. ¿Debo establecer explícitamente BROKER_HEARTBEAT=0 o hay algo más que debería estar comprobando?