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
3.2 KiB
3.2 KiB
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
{
"Name": "Sincronizzazione Clienti Ogni 5 Minuti",
"ProfileId": 1,
"ScheduleType": "interval",
"IntervalValue": 5,
"IntervalUnit": "minutes",
"IsEnabled": true
}
🔧 Modifiche Tecniche
Database
- ✅ Aggiunti campi
IntervalValueeIntervalUnitalla tabellaProfileSchedules - ✅ 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
- Esecuzione Parallela: Più schedulazioni possono essere eseguite contemporaneamente
- Controlli Frequenti: Ogni 30 secondi per supportare intervalli brevi
- Prevenzione Duplicati: Tracking automatico delle schedulazioni in esecuzione
- 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
-
Backup Database
BACKUP DATABASE CredentialDb TO DISK = 'backup_pre_scheduling.bak' -
Esegui Migration
cd CredentialManager dotnet ef database update --context CredentialDbContext -
Restart Applicazione
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