FEAT: Agent GPU — worker consommateur : exécution des jobs d'analyse reçus du broker #76
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#76
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
L'agent équipé GPU consomme les jobs publiés (par lui-même ou par d'autres sites), exécute l'inférence YOLO/ONNX et publie le résultat (
AnalysisJobCompleted/Failed). C'est le bras qui exécute à distance pour les sites sans GPU.🔍 État actuel (vérifié dans le code)
FrameAnalyzerServiceexiste côté agent (queue bornée Channel, DropWrite) maisRunInferenceest un stub et le service n'est pas en DI. Aucun consommateur de file. L'agent n'a aucun accès GPU déclaré (cf. ticket docker GPU).🧩 À faire
IConsumer<AnalysisJobRequested>)FrameAnalyzerServiceréel (une fois le ticket #2 fait) avec le backend GPU si disponibleAnalysisJobCompleted(détections, confidence, ms) /AnalysisJobFailed(raison)🧪 Critères d'acceptation
AnalysisJobFailedest publié et le job est retenté puis dead-letté au centralmake testvert📁 Fichiers concernés
src/Heimdall.Agent/Consumers/AnalysisJobConsumer.cs (nouveau), src/Heimdall.Agent/Program.cs (DI bus), src/Heimdall.Agent/Services/FrameAnalyzerService.cs, tests/Heimdall.Agent.Tests/
⚠️ Impact
Dépend du broker (ticket 1), de l'inférence réelle (ticket #2), des capacités (heartbeat) et de l'accès GPU (docker).
📝 Notes
Le GPU peut exécuter plusieurs jobs concurrents selon VRAM — le max concurrent doit être paramétrable et respecté.