Worker magazzino grafico
Overview
ZMagazzinoSchedulerWorker è un servizio BackgroundService .NET8 che gestisce la transizione automatica degli stati dei layout grafici di magazzino.
Le possibili variazioni di stato di un layout sono:
Obiettivo
Automatizzare la pubblicazione futura di layout grafici evitando interventi manuali: Il layout con la priorità più alta passa in stato attivo, gli altri diventano o sheduled o archived
Logica Ciclica
- Timer periodico: 15 minuti (per la fase di test).
- Ad ogni tick:
- Lettura layout da aggiornare
- vengono prelevati tutti i magazzini grafici active o scheduled ordinati per il campo
Ultima_Verificaper prelevare i magazzini con la verifica più vecchia - in questo step viene inclusa la creazione degli aggregati e di conseguenza l’aggiornamento degli stati (che avviene ad ogni lettura, sia dal worker che dalle api)
- vengono prelevati tutti i magazzini grafici active o scheduled ordinati per il campo
- Viene aggiornato il campo
Ultima_Verificadei magazzini prelevati - Vengono salvate le modifiche apportate
- Lettura layout da aggiornare
Requisiti stati
Active:
AttivoDa< Datetime.nowAttivoA> Datetime.Now- Il magazzino con
AttivoDapiù vicina a quella attuale ha la prioritÃ
Scheduled:
- Possono diventare scheduled solo i magazzini in draft o active
AttivoDa> Datetime.now- Un altro magazzino ha più priorità di questo
Draft:
- Primo stato disponibile per una layout, è un punto di partenza
- Pilotabile solo dalle api
Archived
AttivaA< Datetime.now- tutti gli stati portano a questo stato, basta che venga rispettato il punto sopra
Locked
InModificaè true- Pilotabile solo dalle api, rende disponibile il layout solo all’utente che l’ha bloccato (utenteAggiornamento)