Files
mapo-core/Refactor_Plan.md
T
2026-05-28 18:49:10 +02:00

2.8 KiB

Piano di Refactoring: Migrazione a FusionCache in MpDataService.cs

Obiettivo

Migrare la logica di caching manuale (Redis + DB) verso l'utilizzo di IFusionCache per implementare un approccio multi-layer (Memory + Redis + DB), standardizzando l'accesso ai dati.

Strategia di Migrazione

  • Metodo Standard: GetOrFetchAsync<T>(string operationName, string cacheKey, Func<Task<T>> fetchFunc, TimeSpan expiration, params string[] tagList).
  • Invalidazione: Utilizzare i tag tramite FlushCacheByTagsAsync.

Stato Avanzamento

Fase 1: Analisi e Mapping (Completata)

Fase 2: Refactoring Metodi di Lettura (Cache-aside)

Completati (Migrati con GetOrFetchAsync)

  • ActionGetReq
  • AnagEventiGeneralAsync
  • AnagStatiCommAsync
  • AnagTipoArtLvAsync
  • ArticleWithDossierAsync
  • ArticoliGetByTipoAsync
  • ArticoliGetSearchAsync
  • ConfigGetAllAsync
  • DossiersGetLastFiltAsync
  • ElencoAziendeAsync
  • ElencoGruppiFaseAsync
  • ElencoLinkAsync
  • FluxLogGetLastFiltAsync
  • FluxLogParetoAsync
  • OperatoriGetFiltAsync
  • POdlGetByOdlAsync
  • POdlListGetFiltAsync
  • TksScoreAsync
  • WipKitFiltAsync
  • MacchineRecipeArchiveAsync
  • MacchineRecipeConfAsync

In corso / Da Migrare

  • AnagEventiGetByMacch
  • AnagKeyValGetAll
  • ConfigGetAll (Sincrono)
  • ConfigTryGet (Sincrono)
  • ConfigTryGetAsync
  • DbDedupStats
  • ElencoRepartiDTO
  • ExpiryReloadParamGet
  • IobInfo
  • ListPODL_ByCodArt
  • MacchineGetFilt
  • MachIobConf
  • MachIobConfVal
  • MseGetAll
  • OdlByBatch
  • OdlGetCurrentAsync
  • OdlListGetFilt
  • OperatoriGetFilt (Sincrono)
  • ParametriGetFilt
  • POdlGetByKey
  • POdlListByKitParent
  • ProcFLStats
  • StatoMacchina
  • TagConfGetKey
  • VocabolarioGetAll

Fase 3: Refactoring Metodi di Scrittura e Invalidazione

  • AnagGruppiDelete
  • AnagGruppiUpsert
  • ArticoliDeleteRecord
  • ArticoliUpdateRecord
  • ConfigResetCache
  • DossiersDeleteRecord
  • DossiersTakeParamsSnapshotLast
  • IstKitDelete
  • IstKitInsertByWKS
  • IstKitUpsert
  • PodlIstKitDelete
  • POdlDoSetup
  • POdlUpdateRecipe
  • POdlUpdateRecord
  • RecipeSetByPODL
  • TemplateKitDelete
  • TemplateKitUpsert

Fase 4: Verifica

  • Verificare la compilazione della soluzione tramite script PowerShell.
  • Controllare che i log (NLog) continuino a riflettere correttamente le operazioni.

Rischi e Mitigazioni

  • Rischio: Discrepanza nelle chiavi di cache tra vecchio e nuovo sistema.
    • Mitigazione: Utilizzare rigorosamente le costanti in Utils.redis... per garantire che le chiavi siano identiche o gestite dal nuovo sistema.
  • Rischio: Errori di serializzazione.
    • Mitigazione: FusionCache gestisce la serializzazione, ma è necessario assicurarsi che i tipi di ritorno siano compatibili con le aspettative dei chiamanti.