Async PHP in traditional environments - Spanish
PHP asíncrono: ¿qué es, y se puede aprovechar en un entorno tradicional?
Programación asíncrona
La programación asíncrona permite iniciar múltiples operaciones sin esperar a que cada una finalice, utilizando un event loop para gestionar tareas concurrentes.
Flujo tradicional
flowchart TD A[Inicio] B[Tarea 1] C[Tarea 2] D[Fin] A --> B B --> C C --> D
Flujo asíncrono
flowchart TD A[Inicio] B[Desencadenar tareas asíncronas] C[Tarea 1] D[Tarea 2] E[Recoger resultados] F[Fin] A --> B B --> C B --> D C --> E D --> E E --> F
flowchart TD INI[Inicia aplicación] --> B A[Cliente] -->|HTTP Request| B[Servidor Asíncrono] B --> C[Event Loop] C --> D[Desencadenar Tareas Async] D --> E[Acceso a DB / APIs Externas] E --> D D --> F[Procesar Respuesta Asíncrona] F --> B B -->|HTTP Response| A
Flujo híbrido
flowchart TD A[Inicio] B[Tarea sincrónica inicial] C[Desencadenar tareas asíncronas] D[Tarea asíncrona 1] E[Tarea asíncrona 2] F[Recoger resultados] G[Tarea sincrónica final] H[Fin] A --> B B --> C C --> D C --> E D --> F E --> F F --> G G --> H
PHP tradicional vs. asíncrono
En el modelo tradicional, cada operación bloquea la ejecución hasta completarse; en el modelo asíncrono, se pueden gestionar las operaciones de E/S sin detener el flujo principal.
Frameworks y librerías existentes
SWOW
Swoole
AMPHP
ReactPHP
Frameworks web
Phenix
Empress
Neutomic
Framework X
Hyperf
Aplicación en entornos tradicionales
Se aprovecha en tareas intensivas de E/S (HTTP, archivos, bases de datos).
No sustituye la programación síncrona, sino que la complementa en casos específicos para mejorar el rendimiento y la escalabilidad.
Llamadas a servicios externos
Hidratación masiva con datos de muestra
- Pool de conexiones
Consultas en paralelo
- Pool de conexiones