jcadafalch / TaskManager

MIT License
0 stars 0 forks source link

🛠️ Crear un worker para cargar las imágenes en memoria #52

Open easis opened 1 year ago

easis commented 1 year ago

Crear un worker que se inicie al principio y que cargue todas las imágenes de la base de datos a la caché en memoria.

Los workers pueden ser de dos tipos: HostedService y BackgroundService. La diferencia es que los HostedService están diseñados para realizar tareas cortas y los BackgroundService (que heredan de HostedService) pueden ejecutarse durante todo el ciclo de vida de la aplicación.

Documentación de HostedService Documentación de BackgroundService

Ambos tipos de workers se registran durante la construcción del servidor (Program.cs) al final del todo, cuando ya se han registrado el resto de servicios:

var builder = WebApplication.CreateBuilder(args);

// Registro de la base de datos
// Registro de la caché
// Servicios de ASP/Blazor

builder.Services.AddHostedServie<TuWorker>();

var app = builder.Build();

Los workers son servicios Singleton, por lo tanto, tendrás problemas al consumir algunos tipos de servicio (Transient y Scoped, principalmente). Tendrás que investigar sobre cómo crear scopes dentro del worker. Pista

Los workers pueden ejecutarse desde cualquier punto de la aplicación, no solo desde el startup. Es decir, podrías ejecutar un worker como consecuencia de una llamada de una API.

easis commented 1 year ago

Desarrollar después de: #51