Async Worker
Command: yo codedesignplus:microservice asyncWorker
Este comando se utiliza para crear un proyecto Async Worker dentro de un microservicio existente. Los Async Workers son procesos que ejecutan tareas en segundo plano, de forma asíncrona, mejorando el rendimiento y la capacidad de respuesta del microservicio. Este comando facilita la generación de la estructura básica para definir un worker en tu microservicio.
Prerrequisitos
Section titled “Prerrequisitos”- Instalar Node.js y npm instalados.
- Instalar Yeoman (
npm install -g yo
). - Instalar el generador
codedesignplus:microservice
. - Tener un microservicio existente creado con:
- CRUD:
codedesignplus:microservice
- Custom:
codedesignplus:microservice
.
- CRUD:
Conceptos Clave
Section titled “Conceptos Clave”- Async Worker (Trabajador Asíncrono): Es un proceso que se ejecuta en segundo plano, desacoplando la ejecución de tareas de la petición inicial. Esto permite que el microservicio responda rápidamente mientras las tareas más complejas se ejecutan de forma asíncrona.
- Tareas en Segundo Plano: Son operaciones que no requieren una respuesta inmediata al cliente, como el envío de correos electrónicos, procesamiento de archivos, actualización de datos, etc.
- Cola de Mensajes: Los Async Workers generalmente trabajan en conjunto con una cola de mensajes donde las tareas se encolan y el worker las consume de forma ordenada.
- Desacoplamiento: Los Async Workers permiten desacoplar el procesamiento de las peticiones de la lógica de negocio, mejorando la escalabilidad y la mantenibilidad del microservicio.
Sintaxis del Comando
Section titled “Sintaxis del Comando”El comando yo codedesignplus:microservice asyncWorker
tiene la siguiente sintaxis:
yo codedesignplus:microservice asyncWorker \ --organization "<organization_name>" \ --microservice "<microservice_name>" \ --consumer-name "<consumer_name>" \ --consumer-aggregate "<aggregate_name>" \ --consumer-action "<consumer_action>" \ --consumer-microservice "<consumer_microservice>"
yo codedesignplus:microservice asyncWorker ` --organization "<organization_name>" ` --microservice "<microservice_name>" ` --consumer-name "<consumer_name>" ` --consumer-aggregate "<aggregate_name>" ` --consumer-action "<consumer_action>" ` --consumer-microservice "<consumer_microservice>"
--organization
Section titled “--organization”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre de la organización a la que pertenece el microservicio.
--microservice
Section titled “--microservice”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del microservicio donde se creará el proyecto async worker.
--consumer-name
Section titled “--consumer-name”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del evento que se consumirá.
--consumer-aggregate
Section titled “--consumer-aggregate”- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del agregado al que pertenece el evento que se consumirá.
--consumer-action
Section titled “--consumer-action”- Tipo:
string
- Obligatorio: Sí
- Descripción: La acción que realizará el consumer en respuesta al evento.
--consumer-microservice
Section titled “--consumer-microservice”- Tipo:
string
- Obligatorio: No
- Descripción: El nombre del microservicio que publica el evento que se consumirá.
Ejemplos de Uso
Section titled “Ejemplos de Uso”Este ejemplo crea un worker para el microservicio notifications
de la organización acme
, que consumirá los eventos de tipo orderCreated
del agregado order
para el envio de notificaciones.
yo codedesignplus:microservice asyncWorker \ --organization "Acme" \ --microservice "Notifications" \ --consumer-name "OrderCreated" \ --consumer-aggregate "Order" \ --consumer-action "send-notification" \ --consumer-microservice "ms-order"
yo codedesignplus:microservice asyncWorker ` --organization "Acme" ` --microservice "Notifications" ` --consumer-name "OrderCreated" ` --consumer-aggregate "Order" ` --consumer-action "send-notification" ` --consumer-microservice "ms-order"
Salida del comando en consola
Section titled “Salida del comando en consola”Tras ejecutar el comando, se generará la estructura base para el Async Worker en el microservicio notifications
, con la siguiente salida en consola:

Directorios y Archivos Generados
Section titled “Directorios y Archivos Generados”Si exploramos el microservicio con VS Code, veremos la estructura de directorios y archivos generados para el nuevo Async Worker:

Resultados de la Ejecución
Section titled “Resultados de la Ejecución”La ejecución de este comando con los parámetros proporcionados generará la estructura base para un Async Worker en el microservicio especificado. Veamos los resultados de la ejecución del comando:
--organization
Section titled “--organization”Flag: --organization "Acme"
-
Este parámetro establece el nombre de la organización, que se refleja en los namespaces de los archivos generados para el proyecto Async Worker.
--microservice
Section titled “--microservice”Flag: --microservice "Notifications"
- Este parámetro establece el nombre del microservicio en el que se creará el Async Worker, reflejándose en los namespaces y ubicaciones de los archivos.

--consumer-name
Section titled “--consumer-name”Flag: --consumer-name "OrderCreated"
-
Este parámetro define el nombre del mensaje o evento que consumirá el worker, reflejándose en la lógica de consumo de mensajes.
--consumer-aggregate
Section titled “--consumer-aggregate”Flag: --consumer-aggregate "Order"
-
Este parámetro define el agregado asociado al mensaje o evento que consumirá el worker, reflejándose en la lógica de consumo de mensajes.
--consumer-action
Section titled “--consumer-action”Flag: --consumer-action "send-notification"
-
Este parámetro define la acción del mensaje o evento que consumirá el worker, reflejándose en la lógica de consumo de mensajes.
--consumer-microservice
Section titled “--consumer-microservice”Flag: --consumer-microservice "ms-order"
-
Este parámetro define el microservicio que publica el mensaje. En este caso, el microservicio
ms-order
publica el eventoorderCreated
.
Consideraciones Adicionales
Section titled “Consideraciones Adicionales”- Asegúrate de tener un microservicio existente antes de utilizar este comando.
- Los Async Workers deben encargarse de ejecutar tareas en segundo plano, sin bloquear la respuesta del microservicio.
- La configuración de la cola de mensajes debe estar previamente establecida para que el worker pueda consumir los mensajes.
- Se recomienda utilizar un mensaje de cola diferente por cada action (consumer-action).
Enlaces Relacionados
Section titled “Enlaces Relacionados”- Documentación del arquetipo
CodeDesignPlus.Net.Microservice
- Documentación del SDK
CodeDesignPlus.Net.SDK
- RabbitMQ
Conclusión
Section titled “Conclusión”El comando yo codedesignplus:microservice asyncWorker
facilita la creación de proyectos de Async Worker en tu microservicio, permitiendo una mejor gestión de las tareas en segundo plano. Utiliza este comando para desacoplar la ejecución de tareas, mejorando la escalabilidad y capacidad de respuesta de tu microservicio.
¡Ahora el ejemplo es más claro y muestra mejor cómo usar el comando en diferentes contextos!