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 --> DFlujo 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 --> Fflowchart 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| AFlujo 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 --> HPHP 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