DeadlineTray
Une interface system tray qui donne aux artistes un suivi personnel et épuré de leurs rendus Deadline — sans le bruit de l'interface complète. Paquet interne dw_deadline_tray.
Vue d'ensemble
Chez Dwarf Animation Studio, les rendus sont traités par Deadline. Son interface est puissante mais dense — les artistes s'y noient pour suivre un simple job.
dw_deadline_tray fournit une interface spécialisée et personnelle : chaque utilisateur suit uniquement ses jobs, sans information superflue. Besoin de plus de détails ? Un clic copie l'ID du job pour le retrouver dans Deadline. L'objectif : faire gagner du temps, de l'exécution jusqu'au visionnage des fichiers.
Problème résolu
L'interface Deadline est surchargée pour un suivi simple. Ici : une vue personnelle, épurée, avec notifications temps réel pour suivre ses jobs sans friction.
Approche adoptée
Architecture orientée événements : un service de monitoring dans un thread séparé interroge l'API Deadline et notifie à chaque changement de statut.
Le fonctionnement
De la barre système à la notification, le cycle de surveillance tourne en continu :
Fonctionnalités
Notifications temps réel
Alerte système dès qu'un job change d'état — démarrage, complétion, erreur — sans surveiller Deadline manuellement. Compatible notifications natives Windows et macOS via Plyer.
Filtrage par utilisateur
Seuls les jobs soumis par l'utilisateur courant sont affichés, éliminant le bruit des rendus des autres équipes du studio.
Appels API
Lecture, suspension, suppression et re-queue des jobs depuis le tray.
Monitoring en fond
Un thread interroge l'API à intervalle régulier sans bloquer l'UI.
Copie d'ID de job
Identifiant Deadline copiable en un clic pour basculer vers l'interface complète.
Nettoyage des logs
Un service purge automatiquement les fichiers de logs anciens.
Stack technique
Backend
Interface & méthodo
Comment c'est construit
L'application PySide6 s'installe dans la barre système au démarrage. Une icône permet d'ouvrir le panneau de suivi, mettre en pause le monitoring ou quitter proprement.
Un thread de monitoring tourne en arrière-plan, interroge l'API REST Deadline à intervalles réguliers et compare les statuts à l'état connu pour détecter les changements.
L'API Deadline est interrogée pour récupérer les jobs actifs. Un filtre par nom d'utilisateur extrait uniquement les jobs pertinents.
À chaque changement d'état, une notification système est déclenchée via Plyer (Windows / macOS natif).
Les actions de gestion (suspension, suppression, re-queue) envoient la requête à l'API et actualisent l'affichage sans rechargement complet.
Un service de nettoyage des logs supprime périodiquement les fichiers dépassant un seuil d'ancienneté configurable.
Visuels
Apprentissages
Architecture multi-thread
Séparer le thread de monitoring de l'UI Qt impose une communication inter-thread propre via signaux et slots PySide6, pour éviter tout blocage de l'interface.
UX pour non-développeurs
Concevoir pour des artistes 3D signifie masquer la complexité des appels API derrière une interface immédiatement lisible, accessible depuis la barre système.
Intégration d'API métier
Consommer l'API Deadline en conditions réelles — erreurs réseau, états transitoires, droits par utilisateur — m'a appris à traiter des APIs peu documentées avec rigueur.