POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Hangfire en .NET 9: Guía de tareas en segundo plano

Guía de tareas en segundo plano con Hangfire en .NET 9

Publicado el 01/09/2025
Introducción

En las aplicaciones web modernas no todas las tareas deben ejecutarse durante la solicitud principal del usuario. Procesos como enviar correos, generar informes, limpiar logs o sincronizar datos pueden tardar segundos o minutos. Ejecutarlos en línea ralentiza la app y empeora la experiencia. Aquí es donde entran los trabajos en segundo plano.

Un trabajo en segundo plano es cualquier tarea que se ejecuta fuera del ciclo petición respuesta. En lugar de hacer esperar al usuario, la aplicación delega la tarea para que se ejecute de forma asíncrona, lo que mejora el rendimiento, mantiene la app reactiva y permite manejar tareas recurrentes o de larga duración con fiabilidad.

Ejemplos prácticos

- Enviar un correo de bienvenida tras el registro de un usuario

- Generar facturas o informes de forma programada

- Procesar archivos subidos como redimensionado de imágenes o lectura de CSV

- Realizar tareas de mantenimiento de base de datos o copias de seguridad

Con .NET 9, Microsoft ofrece soporte sólido para el procesamiento en segundo plano. Para escenarios simples se puede usar IHostedService o BackgroundService. Sin embargo, para necesidades avanzadas como reintentos, persistencia y monitoreo, Hangfire es una solución mucho más robusta.

En este artículo aprenderás a dominar Hangfire en .NET 9 para implementar trabajos en segundo plano fiables, escalables y mantenibles, con recomendaciones de producción y ejemplos prácticos.

Qué es Hangfire

Hangfire es un framework open source para gestionar trabajos en segundo plano en aplicaciones .NET. Permite ejecutar trabajos inmediatos, diferidos, recurrentes o encadenados sin crear infraestructura compleja. Ofrece ejecución, persistencia, reintentos y panel de monitoreo desde el primer momento, por eso es tan popular en el ecosistema .NET.

Hangfire usa un almacenamiento persistente como SQL Server, PostgreSQL o Redis para encolar y rastrear los trabajos. Así, incluso si la aplicación se reinicia o falla, los trabajos pendientes se procesan de forma fiable.

Ventajas clave

- Persistencia de trabajos ante reinicios y fallos

- Reintentos y manejo de errores incorporados

- Dashboard con visibilidad del ciclo de vida de los jobs

- Escalabilidad con múltiples servidores y concurrencia

- Flexibilidad de proveedores de almacenamiento como SQL y Redis

Configuración de Hangfire en .NET 9

1 Instalar paquetes NuGet necesarios

- Hangfire.AspNetCore para integrar con ASP.NET Core

- Hangfire.SqlServer para usar SQL Server como almacenamiento persistente

Si prefieres PostgreSQL o Redis, instala el proveedor correspondiente.

2 Configuración base en Program.cs

- Registrar servicios de Hangfire con almacenamiento SQL usando la cadena de conexión de tu configuración

- Agregar el servidor de procesamiento de Hangfire

- Habilitar el dashboard en la ruta recomendada hangfire

- Probar encolando un trabajo simple que escriba en consola

3 Cadena de conexión en appsettings.json

Define una clave HangfireConnection con una cadena tipo Server=localhost;Database=HangfireDB;User Id=sa;Password=tuPassword;TrustServerCertificate=True; evitando compartir credenciales en repositorios.

Tipos de trabajos en Hangfire

Hangfire ofrece varios tipos para cubrir diferentes escenarios.

Fire and forget

Se ejecutan inmediatamente una sola vez y no bloquean la petición del usuario. Ejemplo conceptual Enqueue servicio de correo para enviar bienvenida al usuario destino

Retrasados

Se planifican para ejecutarse tras un retraso específico. Ejemplo conceptual Schedule escribir en consola tras 2 minutos con TimeSpan FromMinutes 2

Recurrentes con cron

Se ejecutan de forma periódica según una expresión cron. Ejemplo conceptual AddOrUpdate identificador informe diario acción Generar informe diario expresión Cron Daily

Otras expresiones disponibles Cron Minutely Cron Hourly Cron Daily Cron Weekly Cron Monthly

Continuaciones

Se ejecutan después de que un trabajo padre finaliza. Ejemplo conceptual Enqueue trabajo paso 1 y luego ContinueJobWith trabajo paso 2

Panel de control de Hangfire

El dashboard ofrece visibilidad en tiempo real de trabajos, colas y servidores. Al habilitar la ruta hangfire puedes abrirla en el navegador y consultar estados como succeeded failed scheduled processing y deleted.

Secciones habituales

- Jobs estados y detalle de ejecución

- Recurring Jobs con sus expresiones cron

- Queues para ver cuántos workers procesan cada cola

- Servers con los nodos activos

- Retries con los reintentos pendientes

Desde Jobs puedes revisar trabajos en ejecución, logs de completados y parámetros con su historial.

Reintentos de fallos

Si un job falla por ejemplo por red o timeout de base de datos, Hangfire lo reintenta automáticamente según la política definida. También puedes relanzarlo manualmente desde el panel, con acceso a la traza de excepción.

Seguridad del panel

En producción debes proteger el dashboard con autenticación y autorización, por ejemplo permitiendo solo usuarios autenticados y con rol Admin a través de un filtro personalizado de autorización del dashboard.

Patrones avanzados

Inyección de dependencias

Hangfire se integra con el contenedor de DI de ASP.NET Core. Registra servicios como un servicio de correo y encola métodos de interfaz en lugar de helpers estáticos. Así pruebas y mantenimiento son más sencillos.

Cron personalizado

Puedes usar expresiones cron avanzadas. Ejemplo ejecutar limpieza semanal los lunes a medianoche usando 0 0 astrisco astrisco 1 donde el formato es minuto hora día mes día de la semana.

Concurrencia y colas

Asigna trabajos a colas específicas como emails o reports y configura el servidor para escuchar varias colas, afinando prioridades y aislando cargas.

Escalado horizontal

Ejecuta múltiples instancias de tu aplicación compartiendo el mismo almacenamiento de jobs en SQL Server o Redis. Cada servidor toma trabajos de la misma cola, con distribución automática y reintentos gestionados. Ajusta WorkerCount en función de los núcleos para exprimir la concurrencia.

Buenas prácticas para producción

Observabilidad

- Usa logging estructurado con librerías como Serilog o NLog

- Aprovecha el historial de trabajos del dashboard

- Complementa con Application Insights ELK o Prometheus Grafana para métricas y trazas

Políticas de reintentos

- Hangfire reintenta por defecto varias veces

- Ajusta el número de intentos según criticidad

- En trabajos sensibles define un atributo de reintentos automáticos con intentos acotados y acción adecuada al excederlos

Seguridad del dashboard

- Requiere autenticación y rol adecuados

- Publica el panel solo en redes internas o bajo VPN cuando sea posible

Rendimiento de base de datos

- Optimiza índices y almacenamiento ya que Hangfire realiza inserciones y actualizaciones frecuentes

- En cargas altas usa una base o esquema dedicado

- Programa limpieza del historial antiguo para evitar crecimiento descontrolado

Q2BSTUDIO y la automatización con Hangfire

En Q2BSTUDIO impulsamos la productividad de tu organización con trabajos en segundo plano y automatización de procesos que integran aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si buscas una solución completa que conecte tus sistemas y optimice tareas como generación de informes, notificaciones, ETL o conciliaciones, nuestro equipo puede diseñar la arquitectura idónea, desplegar pipelines y asegurar el cumplimiento de mejores prácticas de observabilidad y seguridad.

Conoce cómo abordamos el desarrollo de soluciones empresariales y multiplataforma en nuestro servicio de desarrollo de aplicaciones a medida, o explora cómo llevamos la orquestación de tareas y RPA al siguiente nivel con automatización de procesos.

Guía rápida paso a paso

- Instala Hangfire AspNetCore y el proveedor de almacenamiento elegido

- Configura en Program.cs el servicio de Hangfire y el servidor de procesamiento

- Define la cadena de conexión segura en configuración

- Habilita el dashboard en la ruta hangfire con autenticación en producción

- Encola trabajos fire and forget, retrasa o agenda recurrentes con cron

- Usa DI para servicios y separa colas por dominios funcionales

- Escala worker count y nodos según carga y métricas

- Supervisa reintentos, errores y tiempos con logging y APM

Conclusión

El procesamiento en segundo plano es esencial para construir aplicaciones modernas y escalables. Hangfire simplifica y potencia este escenario en .NET 9 con persistencia, reintentos, tipos de trabajos flexibles y un panel intuitivo. BackgroundService puede bastar para tareas ligeras, pero cuando necesitas fiabilidad, visibilidad y escalabilidad, Hangfire brilla. Siguiendo las mejores prácticas de seguridad, observabilidad y rendimiento, tendrás un sistema robusto y tolerante a fallos que mejora la experiencia de usuario y el rendimiento global de tu plataforma.

Si quieres acelerar tu roadmap con trabajos en segundo plano, pipelines resilientes y una arquitectura preparada para crecer, en Q2BSTUDIO te ayudamos a diseñar, desarrollar y operar soluciones listas para producción con enfoque integral en aplicaciones a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure y power bi.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio