
En la era digital actual, las aplicaciones web y móviles se han vuelto inherentemente asincrónicas y orientadas a eventos, donde las tareas en segundo plano juegan un papel crucial en la mejora de la experiencia del usuario y la eficiencia operativa. En el entorno de .NET, hay muchas librerías que los desarrolladores pueden utilizar, brindando una gran cantidad de utilidades y facilidades a la hora de crear proyectos. Hangfire es solución robusta y flexible para gestionar estas tareas en aplicaciones .NET, permitiendo a los desarrolladores ejecutar procesos en segundo plano de manera sencilla y eficaz. En esta ocasión, se va a hablar de Hangfire, una de las librerías más famosas a la hora de trabajar con procesos en segundo plano o tareas programables.
Herramientas relevantes que incluye Hangfire
- Tareas persistentes: Hangfire almacena en base de datos la gestión de las tareas, de forma que se pueda tener una clara idea de cómo ha ido su proceso de ejecución manteniéndose almacenado de forma segura.
- Automatización de reintentos: Hangfire permite que tareas que hayan fallado puedan reinventarse de forma automática.
- Panel de control: Hangfire dispone de un panel de control donde ver y gestionar las distintas tareas.
- Admite expresiones CRON
Características de Hangfire
Escalabilidad
Hangfire no solo facilita la ejecución de tareas en segundo plano sino que también escala con tu aplicación. Puede gestionar la carga entre diferentes servidores, asegurando que las tareas se distribuyan y ejecuten de manera eficiente en entornos distribuidos.
Seguridad
La seguridad es primordial, y Hangfire permite a los desarrolladores asegurar el panel de administración y gestionar las tareas de manera segura, garantizando que los datos y procesos estén protegidos.
Flexibilidad
Adaptándose a diversas necesidades y entornos de desarrollo, Hangfire ofrece una solución que puede ser implementada en una variedad de aplicaciones, desde pequeños proyectos hasta grandes empresas.
Casos de Uso posibles con Hangfire
Procesamiento de Imágenes
Imagina una aplicación de comercio electrónico que requiere procesar y optimizar miles de imágenes diariamente. Hangfire puede gestionar estas tareas, asegurando que las imágenes se procesen en segundo plano, mejorando la eficiencia y la experiencia del usuario.
Envío de Correos Electrónicos
En el contexto de una aplicación de CRM, Hangfire puede gestionar el envío de correos electrónicos masivos a los clientes, asegurando que los mensajes se envíen de manera oportuna sin afectar el rendimiento de la aplicación
Implementación Avanzada
Uso de Filtros
Los filtros en Hangfire permiten a los desarrolladores ejecutar lógica adicional antes o después de la ejecución de las tareas, proporcionando una capa adicional de flexibilidad y control.
Manejo de Errores
Hangfire gestiona automáticamente los errores y permite a los desarrolladores personalizar cómo se manejan los reintentos y las fallas, asegurando que las tareas se ejecuten de manera confiable.
Ejemplo: Integración Hanfire en Aplicación .Net
Crearemos una aplicación web de tipo Api:
Instalamos los paquetes necesarios para hangfire:
Añadimos los servicios de hangfire a nuestro proyecto:
Creamos un servidor que gestione nuestras tareas y ponemos la cadena de conexión con nuestra base de datos. Se deberá crear una base de datos para esta aplicación y poner la cadena de conexión correspondiente en este caso. Adicionalmente a SQL Server dispone de más métodos para almacenar la información de las tareas gestionadas.
También habilitaremos el panel de control:
Ejecutamos la aplicación
En nuestro proyecto si el la url añadimos “/hangfire”, deberá llevarnos al panel de control de la librería Hanfire implementada en nuestro proyecto:

Ejemplo de ejecución de proceso en segundo plano:
Este código nos permite ejecutar la impresión “¡Bienvenido al mundo de HangFire!”, por consola de forma asíncrona en segundo plano. Para este trozo de código HangFire se encarga de monitorizar y llevar un seguimiento de cómo finaliza.

En la imagen anterior se puede ver su panel de control. En este caso se puede ver como la anterior tarea ha finalizado correctamente, el código ejecutado y el tiempo de duración de esta.
Conclusión
Hangfire ha demostrado ser una herramienta impresionante y esencial en el ecosistema .NET, no solo simplificando la ejecución de tareas en segundo plano, sino también mejorando significativamente la forma en que los desarrolladores gestionan y monitorizan estas tareas. Como hemos observado, es fácil de instalar, amigable para el usuario gracias a su panel de control, y puede ser desplegado de forma rápida y sencilla. Usar Hangfire
No comment yet, add your voice below!