FEAT: Ordonnanceur de jobs d'analyse — routage par capacité, affinité site, priorités, timeouts #74
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#74
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🎯 Contexte
Le central reçoit les demandes d'analyse (job soumis par un agent capteur) et doit choisir quel agent GPU exécute. Stratégie retenue : (1) affinité site d'abord — un GPU du même site si disponible (latence faible, bande passante locale) ; (2) sinon site distant le moins chargé ; (3) priorité de file — analyse de sécurité (mouvement/objet) avant analyse périodique.
🔍 État actuel (vérifié dans le code)
Aucun ordonnanceur : l'assignation caméras→agents est statique (CameraAssignmentService : RoundRobin/GPU/Latest + failover Hangfire). Pas de notion de job d'analyse ni de file.
🧩 À faire
IAnalysisScheduler: sélection de l'exécutant selon la stratégie (capacités + affinité site + charge)🧪 Critères d'acceptation
make testvert📁 Fichiers concernés
src/Heimdall.Application/Services/IAnalysisScheduler.cs, src/Heimdall.Application/Jobs/ (nouveau), src/Heimdall.Infrastructure/Services/AnalysisScheduler.cs (nouveau), src/Heimdall.Domain/Entities/ (état job), tests/Heimdall.Application.Tests/
⚠️ Impact
Ajoute de la logique métier au central — à couvrir par tests de stratégie. Ne modifie pas l'existant.
📝 Notes
Consomme les capacités du ticket heartbeat. N'implique pas de changement côté agent hors mode remote.