Estructura de apio, componentes

¿Qué es el apio?

El apio es un sistema distribuido simple, flexible y confiable que maneja una gran cantidad de mensajes

Cola de tareas asincrónica centrada en el procesamiento en tiempo real

También es compatible con la programación de tareas.

Arquitectura de apio

La arquitectura de Apio se compone de tres partes, un intermediario de mensajes, una unidad de ejecución de tareas (trabajador) y un almacén de resultados de tareas (almacén de resultados de tareas).
~~~~~~~~~~~~~~~~~

Middleware de mensajes

El propio apio no proporciona servicios de mensajería, pero puede integrarse fácilmente con el middleware de mensajería proporcionado por terceros. Incluyendo RabbitMQ, Redis, etc.

Unidad de ejecución de tareas

Worker es la unidad de ejecución de tareas proporcionada por Celery. Los trabajadores se ejecutan simultáneamente en los nodos del sistema distribuido.

Almacenamiento de resultados de tareas

El almacén de resultados de tareas se utiliza para almacenar los resultados de las tareas realizadas por el trabajador. Apio admite el almacenamiento de los resultados de las tareas de diferentes formas, incluyendo AMQP, redis, etc.

Componentes de apio

El apio juega el papel de productor y consumidor
  • Productor: Productor de
    tareas. Llame a la API de Celery, función o decorador, y genere tareas y entréguelas a la cola de tareas para su procesamiento son todos productores de tareas.

  • Celery Beat:
    programador de tareas, el proceso Beat leerá el contenido del archivo de configuración y enviará periódicamente las tareas que se deben ejecutar debido a la configuración a la cola de tareas.

  • Broker: Agente de
    mensajes, la cola en sí, también conocido como middleware de mensajes. Acepte el mensaje de tarea enviado por el productor de tareas, guárdelo en la cola y luego distribúyalo al consumidor de tareas en orden (generalmente una cola de mensajes o una base de datos).

  • Trabajador de apio: los
    consumidores que realizan tareas, generalmente ejecutan varios consumidores en varios servidores para mejorar la eficiencia operativa.

  • Backend de resultados:
    guarde la información de estado y los resultados después de que se complete el procesamiento de la tarea para la consulta.

escenas a utilizar

  • Tareas asincrónicas:
    envío de correos electrónicos, envío de mensajes
    , tareas que requieren mucho tiempo en pedidos automáticos de productos químicos,
    todas las solicitudes que deben procesarse de forma asincrónica están disponibles

  • Tareas cronometradas: el
    sistema de órdenes de trabajo obtiene regularmente órdenes de trabajo de horas extras para alarmas retrasadas
    y borra a miembros caducados

ejemplos de aplicación de apio

  1. Apio es una cola de tareas distribuida de mensajes asincrónicos desarrollada en base a python, a través de la cual puede realizar fácilmente el procesamiento asincrónico de tareas. Si necesita tareas asincrónicas en sus escenarios comerciales, puede considerar usar apio

  2. Desea ejecutar un comando por lotes en 100 máquinas, puede llevar mucho tiempo, pero no desea que su programa espere a que regrese el resultado, sino que le devuelva un ID de tarea, solo necesita mantener este ID de tarea después de un tiempo. Puede obtener el resultado de la ejecución de la tarea, puede continuar haciendo otras cosas mientras la ejecución de la tarea está en progreso

  3. El apio necesita usar un middleware de mensajes para recibir y enviar mensajes de tareas y almacenar los resultados de las tareas al realizar tareas. Generalmente, se usa rabbitMQ o Redis

Ventajas del apio

  1. Simple: una vez que esté familiarizado con el flujo de trabajo del apio, es relativamente simple de configurar y usar

  2. Alta disponibilidad: cuando la ejecución de la tarea falla o la conexión se interrumpe durante la ejecución, Apio intentará ejecutar la tarea de nuevo automáticamente

  3. Rápido: un apio de un solo proceso puede realizar millones de tareas por minuto

  4. Flexible: casi todos los componentes del apio se pueden ampliar y personalizar

Diagrama de flujo de trabajo básico de apio

~~~~~~~~~~~~~ `

usuario: programa de usuario, utilizado para decirle a apio que realice una tarea.
broker: almacenar tareas (confíe en RabbitMQ o Redis para el almacenamiento)
trabajador: realizar tareas

~~~~~~~~~~~~~

Muy importante

Soporte de versión

Celery version 4.0 runs on
        Python ❨2.7, 3.4, 3.5❩
        PyPy ❨5.4, 5.5❩
    This is the last version to support Python 2.7, and from the next version (Celery 5.x) Python 3.5 or newer is required.

    If you’re running an older version of Python, you need to be running an older version of Celery:

        Python 2.6: Celery series 3.1 or earlier.
        Python 2.5: Celery series 3.0 or earlier.
        Python 2.4 was Celery series 2.2 or earlier.

    Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.

Si la versión de Python no es compatible ↓

Resolver problemas de versión:

Bajo la propuesta oficial de Apio, se recomienda cambiar el nombre de archivo del archivo asíncrono a asíncrono

C: \ Python37 \ Lib \ site-packages \ kombu \ async

C:\Python37\Lib\site-packages\celery\utils\timer2.py
C:\Python37\lib\site-packages\celery\concurrency\asynpool.py
C:\Python37\lib\site-packages\celery\worker\components.py
C:\Python37\lib\site-packages\celery\worker\autoscale.py
C:\Python37\lib\site-packages\celery\worker\consumer.py

Todos los siguientes archivos tienen paquetes de guía asíncronos, cambiaremos los informes internos a asíncronos

Supongo que te gusta

Origin blog.csdn.net/weixin_47587864/article/details/108521569
Recomendado
Clasificación