Configuración de workers en segundo plano con .NET y Azure Service Bus

Clase 13 de 24Curso de Introducción a los Microservicios

Resumen

¿Qué es un worker y cómo funciona en segundo plano?

Si has trabajado con servicios en la nube esperando atender mensajes pendientes, utilizar un worker en .NET puede facilitar tu labor. Un worker es una entidad que opera en segundo plano, permaneciendo inactiva hasta que recibe una señal activadora, como un mensaje nuevo en una cola de Service Bus.

Esta estructura es conveniente para gestionar tareas continuas o recurrentes, manteniendo tu servicio activo sin desperdiciar recursos al estar siempre en espera.

¿Cómo configurar un proyecto receptor de mensajes en .NET?

Configurar tu proyecto receptor implica seguir algunos pasos básicos y prácticos:

  • Agrega los paquetes NuGet especificados en la documentación, copiándolos desde ésta hacia tu terminal.
  • Utiliza y configura el archivo appsettings.json, donde almacenarás detalles esenciales como conexiones y nombres de colas (QName).
  • Modifica o crea el archivo Program.cs eliminando endpoints visibles por HTTP, dejando únicamente los servicios y configuraciones necesarias.

¿Qué estructura tiene un archivo worker en .NET?

Un worker en .NET generalmente cuenta con elementos específicos que garantizan su correcto funcionamiento:

  • Constructor del worker: transfiere información de configuración como cadenas de conexión hacia las variables internas del worker.
  • Tarea de ejecución: establece una operación infinita que asegura que la aplicación permanezca en espera activa.
  • Manejadores de eventos: procesan incoming messages y manejan errores o métodos para detener operaciones asíncronas (StopAsync).

Este esquema permite que el worker se active automáticamente cuando hay nuevos eventos que atender.

¿Cómo verificar correctamente la comunicación entre microservicios?

Confirmar que tus microservicios interactúan correctamente implica acciones claras y medibles:

  • Usa múltiples terminales para ejecutar tus servicios por separado.
  • Tras enviar solicitudes desde el microservicio "AdMember", observa que tu worker recibe inmediatamente dichas solicitudes.
  • Corrobora la conexión estableciendo que los mensajes en la cola de Azure Service Bus sean correctamente despejados tras ser atendidos por el worker.

Implementando estos procedimientos tendrás un control claro y efectivo de la comunicación entre tus microservicios, asegurando que cada solicitud se procese de manera efectiva y rápida.

¿Has intentado implementar workers en tus proyectos? Comparte tu experiencia en los comentarios.