Spécificités
- Chaque job a un identifiant unique (ex: #378)
- Conçu pour fonctionner sans intervention humaine.
- Resistant à l’intérruption: Reprise du travail après redémarrage imprévu
- Enregistrés en base de données, pour la resillience ou l’analyse de données
- Asynchrone
- Execution parallèle possible
- Planification d’éxécution possible
- Logique et fonctionnement interne propre à chaque type
- Démarrable avec des paramètres spécifique au type.
- Peuvent être nativement lié à une entitée (utilisateur, etc..)
Utilisation
Les jobs héritent tous deJobBase et couvrent des besoins métier variés.
| Job | Description |
|---|---|
AutoReplyJob | Répond automatiquement à une conversation utilisateur. |
ExtractUserInfoJob | Enrichit périodiquement les données utilisateur (mémoires, scores) à partir de l’historique de conversation. |
GetMediaAlt | Génère un contenu alternatif textuel pour les médias d’un message. |
CharacterSelfieJob | Génère un selfie d’un personnage via un workflow automatisé. |
CharacterWizardPackJob | Génère le pack complet du personnage lors de sa création |
CharacterSwapAIOJob | Remplace le personnage d’une vidéo par un autre. |
MediaReencodingJob | Réencode un média individuel (transcodage, redimensionnement, optimisation). |
BatchMediaReencodingJob | Réencodage batch manuel des médias de la galerie avec filtres et reprise. |
MLBatchProcessingJob | Traitement ML batch des médias non enrichis (embeddings, détection, reconnaissance). |
SyncAiModelsJob | Synchronise les modèles IA. |
EnrichAiCallCostsJob | Enrichit les appels IA avec les coûts réels récupérés auprès des providers. |
WipeDatabaseJob | Effectue la maintenance périodique de la base de données (purge, nettoyage, suppression). |
Progression
Chaque job encourage l’implémentation d’étapes pour découper le travail. Chaque type de job à un nombre fixe d’étapes. Lorsque le travail évolue, l’étape actuelle est incrémentée. Ce mécanisme permet dans le cas d’une reprise de reprendre le travail là ou il a été arrêté. De plus, ce mécanisme permet d’afficher en temps réel la progression, souvent accompagné d’un texte descriptif.Cycle de vie
Chaque job possède un statut défini par l’énumérationJobStatus.
| Statut | Description |
|---|---|
Offline | Job inactif, en attente d’exécution. |
Pending | Job programmé pour exécution future. |
Awaiting | Job en attente d’une condition ou intervention externe. |
Running | Job en cours d’exécution. |
Completed | Job exécuté avec succès. |
Paused | Exécution temporairement suspendue. |
Failed | Job échoué lors de l’exécution. |
Cancelled | Job annulé avant ou pendant l’exécution. |
Interface
La liste des jobs peut être affichée dans l’onglet Admin > Jobs. L’affichage respecte les conventions de liste d’entitées et bénéficie donc de toutes ces fonctionalités, y compris l’affichage en temps réel. La page de détail d’un job permet d’afficher toutes les informations d’un job en temps réel ainsi que certainnes métadonnées propre au type du job si pris en charge. Cette page de détail de job peut être affiché de plusieurs façon comme:- La liste des jobs das tous les cas
- Dans un badge de job > bouton rond ”…” > Afficher depuis la page d’un chat pour les types de jobs pris en charge.
