Passer au contenu principal

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 de JobBase et couvrent des besoins métier variés.
JobDescription
AutoReplyJobRépond automatiquement à une conversation utilisateur.
ExtractUserInfoJobEnrichit périodiquement les données utilisateur (mémoires, scores) à partir de l’historique de conversation.
GetMediaAltGénère un contenu alternatif textuel pour les médias d’un message.
CharacterSelfieJobGénère un selfie d’un personnage via un workflow automatisé.
CharacterWizardPackJobGénère le pack complet du personnage lors de sa création
CharacterSwapAIOJobRemplace le personnage d’une vidéo par un autre.
MediaReencodingJobRéencode un média individuel (transcodage, redimensionnement, optimisation).
BatchMediaReencodingJobRéencodage batch manuel des médias de la galerie avec filtres et reprise.
MLBatchProcessingJobTraitement ML batch des médias non enrichis (embeddings, détection, reconnaissance).
SyncAiModelsJobSynchronise les modèles IA.
EnrichAiCallCostsJobEnrichit les appels IA avec les coûts réels récupérés auprès des providers.
WipeDatabaseJobEffectue 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ération JobStatus.
StatutDescription
OfflineJob inactif, en attente d’exécution.
PendingJob programmé pour exécution future.
AwaitingJob en attente d’une condition ou intervention externe.
RunningJob en cours d’exécution.
CompletedJob exécuté avec succès.
PausedExécution temporairement suspendue.
FailedJob échoué lors de l’exécution.
CancelledJob annulé avant ou pendant l’exécution.
Lors de la création d’un Job, si celui-ci est planifié pour éxécution futur, il est enregistré en base de données et l’orchestrateur vérifiera périodiquement sa date d’execution planifiée. Si le nouveau job n’a pas de planification, il est directement démarrer par l’orchestrateur de Job, et chargé en RAM pour éxécution. Durant toute son éxécution (statut Running ou Awaiting) il vit en mémoire vive et consomme des ressources. Dès lors que le job n’est plus actif (Terminé, Arrété ou annulé) ce dernier est dechargé de la RAM et enregistré en base de données. Certaines métadonnées soécifique au type peuvent être nettoyé avant archivage en base de données. Au cours de son éxécution, le job peut changer lui même d’étape et de statut. Généralement, lors de ces changements, le texte descriptif de l’étape actuelle change également. Le status Awaiting peut dans certains type de job être bypassé afin d’accélérer ou ignorer une étape. Cela est faisable dans l’interface, généralement depuis un badge de job > bouton ”” > Skip waiting. Attention, malgré le contournement ponctuelle d’une attente, le job peut enchainner avec d’autres étapes nécéssitant eux aussi une attente. Dans ce cas le contournement devra être renouvellé si nécessaire. Certains jobs peuvent utiliser un indicateur d’attention, quand le job nécessite une intervention humaine. Dans ce cas les opérateurs ayant activés la notification générique NeedAttention seront notifiés.

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.

Planification