d042863a56
- Aggiunto supporto schedulazione con intervalli flessibili (secondi/minuti/ore/giorni/settimane/mesi) - Esteso modello ProfileSchedule con campi IntervalValue e IntervalUnit - Ottimizzato ScheduledJobService per controlli ogni 30s con esecuzione parallela - Implementata interfaccia UI completa con anteprima real-time in italiano - Aggiunta migrazione database AddIntervalSchedulingFields - Implementati metodi calcolo NextExecutionTime per intervalli - Aggiunta gestione tracking anti-duplicati e cleanup automatico - Creata documentazione completa (6 file, 2500+ righe) Modifiche tecniche: - ProfileSchedule.cs: Nuovi campi e metodi CalculateNextInterval/GetScheduleDescription - ScheduledJobService.cs: Ridotto check interval a 30s, aggiunto parallel processing - ProfileScheduleService.cs: Supporto calcolo intervalli in UpdateNextExecutionTimeAsync - Scheduling.razor: Aggiunta sezione UI per configurazione intervalli - Scheduling.razor.cs: Implementato GetIntervalPreview() e gestione stato campi
141 lines
3.2 KiB
Markdown
141 lines
3.2 KiB
Markdown
# Sistema di Schedulazione Avanzata - Riepilogo Rapido
|
|
|
|
## ✅ **Implementato con Successo**
|
|
|
|
Il sistema di schedulazione di Data Coupler è stato esteso per supportare schedulazioni a intervalli personalizzabili.
|
|
|
|
---
|
|
|
|
## 🎯 **Nuove Funzionalità**
|
|
|
|
### Schedulazione a Intervalli
|
|
|
|
Ora è possibile programmare l'esecuzione automatica dei profili ogni:
|
|
|
|
- **N Secondi** (es. ogni 30 secondi) - per test/demo
|
|
- **N Minuti** (es. ogni 5, 10, 15, 30 minuti)
|
|
- **N Ore** (es. ogni 1, 2, 4, 6 ore)
|
|
- **N Giorni** (es. ogni 2, 3, 7 giorni)
|
|
- **N Settimane** (es. ogni 2, 4 settimane)
|
|
- **N Mesi** (es. ogni 2, 3, 6 mesi)
|
|
|
|
---
|
|
|
|
## 📋 **Esempio di Configurazione**
|
|
|
|
```json
|
|
{
|
|
"Name": "Sincronizzazione Clienti Ogni 5 Minuti",
|
|
"ProfileId": 1,
|
|
"ScheduleType": "interval",
|
|
"IntervalValue": 5,
|
|
"IntervalUnit": "minutes",
|
|
"IsEnabled": true
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 **Modifiche Tecniche**
|
|
|
|
### Database
|
|
- ✅ Aggiunti campi `IntervalValue` e `IntervalUnit` alla tabella `ProfileSchedules`
|
|
- ✅ Migration creata e pronta per l'applicazione
|
|
|
|
### Codice
|
|
- ✅ `ProfileSchedule.cs` - Nuovi campi e metodi di calcolo intervalli
|
|
- ✅ `ScheduledJobService.cs` - Background service ottimizzato:
|
|
- Controllo ogni 30 secondi (invece di 1 minuto)
|
|
- Esecuzione parallela delle schedulazioni
|
|
- Tracking per prevenire duplicati
|
|
- Tolleranza adattiva (30s per intervalli, 1m per altri)
|
|
- ✅ `ProfileScheduleService.cs` - Gestione aggiornata calcolo NextExecutionTime
|
|
|
|
---
|
|
|
|
## ⚡ **Miglioramenti Performance**
|
|
|
|
1. **Esecuzione Parallela**: Più schedulazioni possono essere eseguite contemporaneamente
|
|
2. **Controlli Frequenti**: Ogni 30 secondi per supportare intervalli brevi
|
|
3. **Prevenzione Duplicati**: Tracking automatico delle schedulazioni in esecuzione
|
|
4. **Cleanup Automatico**: Rimozione schedulazioni bloccate dopo 1 ora
|
|
|
|
---
|
|
|
|
## 📊 **Esempi Pratici**
|
|
|
|
### Sincronizzazione Frequente
|
|
```
|
|
Intervallo: Ogni 5 minuti
|
|
Esecuzione: 10:00, 10:05, 10:10, 10:15, 10:20, ...
|
|
```
|
|
|
|
### Backup Orario
|
|
```
|
|
Intervallo: Ogni 1 ora
|
|
Esecuzione: 08:00, 09:00, 10:00, 11:00, 12:00, ...
|
|
```
|
|
|
|
### Test Rapido
|
|
```
|
|
Intervallo: Ogni 30 secondi
|
|
Esecuzione: 14:30:00, 14:30:30, 14:31:00, 14:31:30, ...
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ **Raccomandazioni**
|
|
|
|
### Intervalli Minimi Consigliati
|
|
|
|
- **Produzione**: Minimo 5-10 minuti
|
|
- **Test/Staging**: 30 secondi - 2 minuti
|
|
- **Sviluppo**: Qualsiasi intervallo
|
|
|
|
**Motivazione**: Intervalli molto brevi aumentano il carico su database e API.
|
|
|
|
---
|
|
|
|
## 🚀 **Deployment**
|
|
|
|
### Step Necessari
|
|
|
|
1. **Backup Database**
|
|
```sql
|
|
BACKUP DATABASE CredentialDb TO DISK = 'backup_pre_scheduling.bak'
|
|
```
|
|
|
|
2. **Esegui Migration**
|
|
```powershell
|
|
cd CredentialManager
|
|
dotnet ef database update --context CredentialDbContext
|
|
```
|
|
|
|
3. **Restart Applicazione**
|
|
```powershell
|
|
dotnet run --project Data_Coupler/Data_Coupler.csproj
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 **Compilazione**
|
|
|
|
✅ **Build Completata con Successo**
|
|
```
|
|
Compilazione completato con 25 avvisi in 4,7s
|
|
0 Errori
|
|
```
|
|
|
|
---
|
|
|
|
## 📖 **Documentazione Completa**
|
|
|
|
Per dettagli tecnici completi, consultare:
|
|
- `ADVANCED_SCHEDULING_SYSTEM.md` - Documentazione tecnica dettagliata
|
|
|
|
---
|
|
|
|
**Versione**: 2.0
|
|
**Data**: 2 Ottobre 2025
|
|
**Status**: ✅ Pronto per Deployment
|