utilizados usar tutorial todos reglas programacion para estilos como codigos aprender python celery luigi

usar - reglas de programacion python



Módulos de flujo de trabajo asíncrono basados en Python: ¿Cuál es la diferencia entre el flujo de trabajo de apio y el flujo de trabajo de luigi? (2)

Estoy usando django como un framework web. Necesito un motor de flujo de trabajo que pueda hacer una cadena de tareas síncrona y asíncrona (tareas por lotes). Encontré apio y luigi como flujo de trabajo de procesamiento por lotes. Mi primera pregunta es cuál es la diferencia entre estos dos módulos.

Luigi nos permite volver a ejecutar la cadena de tareas fallida y solo las sub-tareas fallidas se vuelven a ejecutar. ¿Qué pasa con el apio: si volvemos a ejecutar la cadena (después de corregir el código de subtarea fallido), volverá a ejecutar las subtareas ya exitosas?

Supongamos que tengo dos sub-tareas. El primero crea algunos archivos y el segundo lee esos archivos. Cuando los puse en cadena en apio, toda la cadena falla debido a un código de buggy en la segunda tarea. ¿Qué sucede cuando vuelvo a ejecutar la cadena después de corregir el código en la segunda tarea? ¿La primera tarea intentará recrear esos archivos?


(Soy el autor de Luigi)

Luigi no es para el marco de baja latencia síncrona. Está destinado a grandes procesos por lotes que se ejecutan durante horas o días. Así que creo que para su caso de uso, el apio podría ser un poco mejor


Actualización: como señaló Erik, Celery es la mejor opción para este caso.

Apio:

¿Qué es el apio?

El apio es un sistema distribuido simple, flexible y confiable para procesar grandes cantidades de mensajes, al tiempo que proporciona operaciones con las herramientas necesarias para mantener dicho sistema.

¿Por qué usar el apio?

  • Es fácil de usar y tiene muchas características.
  • django-apio: proporciona una buena integración con Django.
  • flor: monitor en tiempo real y administrador web para la cola de tareas distribuida de apio.
  • Comunidad activa y grande (basada en la actividad de , Pyvideos, tutoriales, publicaciones de blog).

Luigi

Que es luigi

Luigi (el marco Python de código abierto recientemente de Spotify) es un paquete de Python que te ayuda a construir tuberías complejas de trabajos por lotes. Maneja la resolución de dependencias, la administración del flujo de trabajo, la visualización, el manejo de fallas, la integración de la línea de comandos y mucho más.

¿Por qué usar Luigi?

  • Soporte incorporado para Hadoop.
  • Lo suficientemente genérico para ser utilizado para todo, desde la simple ejecución de tareas y el monitoreo en una estación de trabajo local, hasta el lanzamiento de enormes cadenas de tareas de procesamiento que pueden ejecutarse en sincronización entre muchas máquinas en el transcurso de varios días.
  • El visualizador de Lugi: ofrece una visión general agradable del gráfico de dependencia del flujo de trabajo.

Conclusión: si necesita una herramienta simplemente para programar tareas y ejecutarlas, puede usar Celery. Si estás tratando con big data y un gran procesamiento, puedes ir por Luigi.