Partager via


Exécuter des projets en continu

Utilisez le mode continu pour planifier l’exécution des charges de travail en continu. Databricks recommande d’utiliser le mode continu pour les charges de travail de diffusion en continu Always-on.

Le mode continu remplace les recommandations héritées pour les charges de travail Structured Streaming afin de configurer les projets avec une stratégie de nouvelles tentatives illimitée et un maximum d’une exécution simultanée.

Importante

Le calcul serverless pour les projets ne prend pas en charge le mode continu.

Configurer le projet à exécuter en mode continu

Pour configurer un projet à exécuter en mode continu, procédez comme suit :

  1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.

  2. Vous pouvez aussi sélectionner les filtres Travaux et Je suis le propriétaire.

  3. Cliquez sur le lien Nom de votre travail.

  4. Cliquez sur Ajouter un déclencheur dans le panneau Détails du travail, sélectionnez Continu dans le type de déclencheur

  5. Si vous le souhaitez, sélectionnez un mode nouvelle tentative de tâche. Vous pouvez choisir de réessayer En cas d’échec pour relancer les tâches échouées au sein d'un travail, ou sélectionner Ne jamais pour ne réessayer qu’au niveau du travail. Le mode nouvelle tentative de tâche est défini par défaut sur Échec pour le mode continu.

    Remarque

    Pour un travail déjà existant, vous devrez peut-être d’abord cliquer sur Configurer le mode nouvelle tentative , puis sélectionner un mode de nouvelle tentative de tâche.

  6. Cliquez sur Enregistrer.

Pour arrêter un projet continu, cliquez sur le bouton Pause. Cliquez sur Reprendre pour redémarrer le projet en mode continu.

Remarque

  • Il ne peut y avoir qu’une seule instance en cours d’exécution d’un travail continu.
  • Un délai existe entre la fin d’une exécution et le début d’une nouvelle exécution. Ce délai doit être inférieur à 60 secondes.
  • Vous ne pouvez pas utiliser les dépendances de tâche avec un travail continu.
  • Vous ne pouvez pas utiliser les stratégies relatives aux nouvelles tentatives dans un travail continu. Au lieu de cela, les travaux continus réessayent automatiquement toute la tâche en cas d’échec à l’aide d’un algorithme d’interruption exponentielle .
  • Vous pouvez également configurer les nouvelles tentatives au niveau de la tâche en définissant le mode nouvelle tentative sur Échec de la tâche.
  • Sélectionnez Run now pour déclencher l’exécution d’un nouveau projet sur un projet continu en pause.
  • Pour que votre projet continu prenne en charge une nouvelle configuration, annulez l’exécution en cours. Une nouvelle exécution démarre automatiquement. Vous pouvez également cliquer sur Redémarrer l’exécution pour redémarrer l’exécution du travail avec la configuration mise à jour.

Comment les échecs sont-ils gérés pour les travaux continus ?

Les échecs sont gérés à l’aide d’un algorithme d’interruption exponentielle .

Lorsque le mode nouvelle tentative de tâche est défini sur Échec, les tâches ayant échoué sont retentées avec un délai d’augmentation exponentielle jusqu’à ce que le nombre maximal de nouvelles tentatives autorisées soit atteint (trois pour un travail de tâche unique). Une fois le nombre maximal de tentatives atteint, l’exécution est annulée et une nouvelle exécution est déclenchée. Pour les travaux avec plusieurs tâches, une tâche ayant échoué déclenche une nouvelle exécution si aucune autre tâche n’est en cours d’exécution, ou toutes les autres tâches non supprimées sont également dans un état d’échec ou de nouvelle tentative.

Les échecs consécutifs au niveau d’une tâche sont également gérés à l’aide d’un retrait exponentiel, ce qui permet aux tâches continues de s’exécuter sans pause et de revenir à un état sain lorsque des défaillances récupérables se produisent.

Lorsqu’un travail continu dépasse le seuil autorisé d’échecs consécutifs, la procédure suivante décrit comment les exécutions de travaux suivantes sont gérées :

  1. Le travail est redémarré après une période de nouvelle tentative définie par le système.
  2. Si l’exécution du travail suivante échoue, la période de nouvelle tentative est augmentée et le travail est redémarré après cette nouvelle période de nouvelle tentative.
    1. Pour chaque défaillance ultérieure d’exécution de projet, la période de nouvelle tentative est à nouveau augmentée, jusqu’à une période de nouvelle tentative maximale définie par le système. Après avoir atteint la période de nouvelle tentative maximale, le travail continue d’être retenté à l’aide de la période maximale de nouvelle tentative. Le nombre de nouvelles tentatives pour un travail continu n’est pas limité.
    2. Si l’exécution du travail se termine correctement et démarre une nouvelle exécution, ou si l’exécution dépasse un seuil sans échec, le travail est considéré comme sain et la séquence d’interruption est réinitialisée.

Vous pouvez redémarrer un travail continu dans l’état d’interruption exponentielle dans l’interface utilisateur des travaux ou en passant l’ID de travail à la demande d’exécution dans l’API Travaux.