Partager via


Recommandations pour le développement de tâches en arrière-plan

S’applique à cette recommandation de liste de contrôle de fiabilité bien conçue : Power Platform

RE:05 Renforcez la résilience de votre charge de travail en mettant en œuvre la gestion des erreurs et la gestion des défaillances transitoires. Intégrez des fonctionnalités dans la solution pour gérer les défaillances de composants et les erreurs transitoires.

Ce guide décrit les recommandations pour développer des tâches en arrière-plan. Les tâches en arrière-plan s’exécutent automatiquement sans nécessiter l’interaction de l’utilisateur. De nombreuses applications nécessitent des tâches en arrière-plan qui s’exécutent indépendamment de l’interface utilisateur.

Quelques exemples de tâches en arrière-plan comprennent les traitements par lots, les tâches de traitement intensives et les processus de longue durée, tels que les flux de travail. L’application démarre la tâche et traite les demandes interactives des utilisateurs.

Par exemple, une application peut avoir besoin de générer un résumé et d’extraire les sentiments et les points clés des documents chargés par les utilisateurs. Une tâche en arrière-plan peut être effectuée pour exécuter les actions d’IA et enregistrer le résumé et les points clés dans la base de données. L’utilisateur n’a pas besoin d’attendre la fin du processus. Autre exemple, un utilisateur peut envoyer une note de frais, ce qui lance un workflow en arrière-plan qui traite la note de frais et l’envoie pour approbation. L’utilisateur peut continuer à présenter une autre note de frais ou quitter l’application pendant l’exécution de la tâche en arrière-plan. Une fois la tâche en arrière-plan terminée, il envoie un e-mail à l’utilisateur pour confirmer que la note de frais a été envoyée pour approbation.

Les tâches en arrière-plan aident à réduire la charge sur l’interface utilisateur de l’application, ce qui améliore la disponibilité et réduit le temps de réponse interactif.

Stratégies de conception clés

Pour choisir la tâche à désigner comme tâche en arrière-plan, déterminez si la tâche s’exécute sans interaction de l’utilisateur et si l’interface utilisateur doit attendre que la tâche soit terminée. Les tâches qui nécessitent que l’utilisateur ou l’interface utilisateur patiente pendant leur exécution ne sont pas généralement des tâches en arrière-plan appropriées.

Types de tâches en arrière-plan

Voici quelques exemples de tâches en arrière-plan :

  • Tâches qui consomment beaucoup de ressources et qui prennent beaucoup de temps, comme l’exécution d’une série de transactions.

  • Traitements par lots, tels que les mises à jour nocturnes des données ou le traitement planifié.

  • Flux de travail de longue durée, tels que l’exécution de commandes ou l’approvisionnement de services et de systèmes.

  • Flux de travail qui nécessitent une collaboration asynchrone, tels que les approbations.

  • Traitement des données sensibles qui transfère la tâche vers un emplacement plus sécurisé pour traitement. Par exemple, vous ne souhaitez peut-être pas traiter des données sensibles dans une application web. À la place, vous pouvez utiliser un modèle tel que le modèle Gatekeeper pour transférer les données vers un processus en arrière-plan isolé qui a accès au stockage protégé.

Déclencheurs

Lancez les tâches en arrière-plan avec :

  • Déclencheurs pilotés par événement : un événement, qu’il s’agisse d’une action de l’utilisateur dans l’application ou d’un événement qui se produit sur un source de données, déclenche le tâche.

  • Déclencheurs pilotés par planification : une planification basée sur un minuteur invoque le tâche. La tâche peut être planifiée de manière périodique ou pour une seule exécution.

Déclencheurs basés sur des événements

Une action déclenche une invocation basée sur des événements qui démarre la tâche en arrière-plan. Voici des exemples de déclencheurs basés sur des événements :

  • L’interface utilisateur ou une autre tâche déclenche la tâche en arrière-plan et transmet les données de l’action effectuée à la tâche en arrière-plan. Par exemple, un utilisateur envoie une note de frais via un formulaire et les détails du formulaire sont transmis à la tâche en arrière-plan pour traitement.

  • L’interface utilisateur ou une autre tâche enregistre ou met à jour une valeur stockée. La tâche en arrière-plan surveille le stockage et détecte les modifications, telles que l’ajout de nouvelles valeurs ou la modification de valeurs existantes, et déclenche la tâche en arrière-plan en fonction de cette modification.

  • L’interface utilisateur ou une autre tâche envoie une demande à un point de terminaison, tel qu’un URI HTTPS ou une API exposée en tant que service web. Dans le cadre de la demande, l’interface utilisateur ou la tâche transfère les données requises par la tâche en arrière-plan. Le point de terminaison ou le service web appelle la tâche en arrière-plan, qui utilise les données comme entrée.

D’autres exemples de déclencheurs pilotés par événement incluent un formulaire soumis dans une application, une nouvelle ligne ajoutée au magasin de données, un phrase déclencheur dans copilot démarrant un rubrique qui appelle un flux, la valeur d’un champ changeant dans le magasin de données, un e-mail avec un objet spécifique ou provenant d’un expéditeur spécifique arrivant dans la boîte de réception et un fichier téléchargé vers un emplacement de stockage de fichiers.

Utilisez des conditions de déclenchement pour rationaliser vos flux de travail et réduire le nombre d’exécutions inutiles. Les conditions de déclenchement configurent plusieurs conditions qui doivent être remplies avant qu’un flux de travail ne soit déclenché.

Note

Assurez-vous d’utiliser des conditions de déclenchement pour éviter les boucles sans fin si, dans le cadre du flux de travail, vous modifiez la source de données qui démarre le flux de travail. Par exemple, l’application peut modifier les champs d’une ligne de table Microsoft Dataverse et le flux de travail effectue des requêtes supplémentaires en fonction de ces champs modifiés, ce qui modifie davantage la même ligne. Utilisez des conditions de déclenchement pour démarrer le flux de travail uniquement lorsque les champs modifiés par l’application sont mis à jour, mais pas les autres champs.

Déclencheurs basés sur la planification

Un minuteur déclenche une invocation basée sur la planification qui démarre la tâche en arrière-plan. Voici des exemples de déclencheurs basés sur la planification :

  • Une tâche en arrière-plan s’exécute de manière quotidienne ou hebdomadaire et exécute un ensemble d’actions.

  • Une application ou un processus distinct démarre un minuteur qui appelle la tâche en arrière-plan après un délai ou à une heure spécifique.

D’autres exemples de tâches adaptées à l’invocation basée sur la planification incluent les routines de traitement par lots (telles que la mise à jour des listes de produits associés pour les clients en fonction de leur comportement récent), les tâches de routine de traitement des données (telles que la génération de résultats accumulés), l’analyse des données pour les rapports quotidiens, le nettoyage de la conservation des données et les contrôles de cohérence des données.

Renvoyer les résultats

Les tâches en arrière-plan s’exécutent de manière asynchrone dans un processus distinct de l’interface utilisateur ou du processus qui a appelé la tâche en arrière-plan. Idéalement, les tâches en arrière-plan sont des opérations de type activer et oublier. Leur progression de l’exécution n’influence pas l’interface utilisateur ou le processus appelant, ce qui signifie que le processus appelant n’attend pas la fin des tâches. L’interface utilisateur et le processus appelant ne peuvent pas détecter la fin de la tâche.

Si une tâche en arrière-plan doit communiquer avec la tâche appelante pour indiquer la progression ou la finalisation, vous devez implémenter un mécanisme tel que :

  • Écrivez une valeur d’indicateur de statut dans le stockage accessible à l’interface utilisateur ou à la tâche de l’appelant, qui peut surveiller ou vérifier cette valeur. D’autres données renvoyées par la tâche en arrière-plan à l’appelant peuvent être placées dans le même stockage.

  • Exposez une API ou un point de terminaison à partir de la tâche en arrière-plan à laquelle l’interface utilisateur ou l’appelant peut accéder pour obtenir des informations sur le statut. La réponse peut inclure les données renvoyées par la tâche en arrière-plan à l’appelant.

  • Configurez la tâche en arrière-plan pour qu’elle réponde à l’interface utilisateur avec le statut ou les données traitées.

Coordination

Les tâches en arrière-plan peuvent être complexes et nécessiter l’exécution de plusieurs tâches. Dans ces scénarios, il est courant de diviser la tâche en étapes discrètes plus petites ou en sous-tâches que plusieurs consommateurs peuvent exécuter. Les tâches en plusieurs étapes sont plus efficaces et flexibles, car les étapes individuelles sont souvent réutilisables dans plusieurs tâches. Il est également facile d’ajouter, de supprimer ou de modifier l’ordre des étapes.

Il peut être difficile de coordonner plusieurs tâches et étapes, mais il existe trois modèles courants pour guider votre solution :

  • Décomposer un tâche en plusieurs étapes réutilisables. Une application peut être amenée à effectuer diverses tâches de complexité différente sur les informations qu’elle traite. Une approche simple mais peu flexible pour mettre en œuvre cette application consiste à effectuer ce traitement en tant que module monolithique. Mais cette approche risque de réduire les possibilités de refactoriser le code, de l’optimiser ou de le réutiliser si l’application nécessite des parties du même traitement ailleurs.

  • Gérer l’orchestration des étapes pour un tâche. Une application peut effectuer des tâches comprenant de nombreuses étapes, dont certaines peuvent appeler des services distants ou accéder à des ressources distantes. Parfois, les étapes individuelles sont indépendantes les unes des autres, mais elles sont orchestrées par la logique applicative qui implémente la tâche.

  • Gérer la récupération pour les étapes tâche qui échouent. Si une ou plusieurs étapes échouent, une application peut être amenée à annuler le travail effectué par une série d’étapes, qui définissent ensemble une opération éventuellement cohérente.

Considérations sur la résilience

Créez des tâches en arrière-plan résilientes pour fournir des services fiables à l’application. Lorsque vous planifiez et concevez des tâches en arrière-plan, tenez compte des points suivants :

  • Les tâches en arrière-plan doivent gérer correctement les redémarrages sans corrompre les données ni introduire d’incohérence dans l’application. Pour les tâches de longue durée ou en plusieurs étapes, envisagez d’utiliser des points de contrôle. Utilisez des points de contrôle pour enregistrer l’état des tâches dans un stockage persistant ou sous forme de messages dans une file d’attente et configurez la logique de nouvelle tentative en cas d’échecs inattendus d’une action.

  • Lorsque vous utilisez des files d’attente pour communiquer avec des tâches en arrière-plan, les files d’attente peuvent agir comme un tampon pour stocker les demandes envoyées aux tâches lorsque l’application est soumise à une charge plus élevée que d’habitude. Les tâches peuvent être mises à jour avec l’interface utilisateur pendant les périodes moins chargées et les redémarrages ne bloquent pas l’interface utilisateur.

Considérations sur la mise à l’échelle et les performances

Les tâches en arrière-plan doivent offrir des performances suffisantes pour garantir qu’elles ne bloquent pas l’application ou ne retardent pas le fonctionnement lorsque le système est sous charge. En général, les performances s’améliorent lorsque vous mettez à l’échelle les instances de calcul qui hébergent les tâches en arrière-plan. Lorsque vous planifiez et concevez des tâches en arrière-plan, tenez compte des points suivants liés à l’évolutivité et aux performances :

  • Les tâches en arrière-plan peuvent affecter l’expérience utilisateur si les résultats des tâches en arrière-plan sont présentés à l’utilisateur. Par exemple, les tâches en arrière-plan peuvent nécessiter que l’utilisateur attende une notification, actualise la page ou vérifie manuellement le statut de la tâche. Ces comportements peuvent augmenter la complexité de l’interaction utilisateur et affecter négativement l’expérience utilisateur. Envisagez des alternatives à la réponse des données à l’interface utilisateur, comme l’envoi d’une notification par e-mail ou Microsoft Teams ou la possibilité de rechercher des mises à jour de statut dans votre interface utilisateur. Dans notre exemple d’envoi de formulaires de dépenses, plutôt que de renvoyer le statut à l’interface utilisateur, vous pourriez avoir une page dans l’application qui répertorie tous les formulaires de dépenses envoyés avec leur statut et la possibilité de déclencher une actualisation.

  • Les tâches en arrière-plan peuvent créer des défis pour la synchronisation des données et la coordination des processus, en particulier si les tâches en arrière-plan dépendent les unes des autres ou d’autres sources de données. Par exemple, les tâches en arrière-plan peuvent gérer des problèmes de cohérence des données, des conditions de concurrence, des blocages ou des délais d’attente.

  • Pour éviter toute perte de performances en charge, vous pouvez implémenter une logique afin qu’un seul point de la chaîne de traitement ne provoque pas de goulot d’étranglement. Tenez compte d’autres limitations, telles que le débit maximal des actions de flux de travail, le stockage et d’autres services sur lesquels reposent l’application et les tâches en arrière-plan.

Compromis : les tâches en arrière-plan introduisent davantage de composants et de dépendances dans le système, ce qui peut augmenter la complexité et les coûts de la solution. Par exemple, les tâches en arrière-plan peuvent nécessiter un service de surveillance et un mécanisme de nouvelle tentative distincts.

Facilitation de Power Platform

Les sections suivantes décrivent les services que vous pouvez utiliser pour héberger, exécuter, configurer et gérer des tâches en arrière-plan.

Power Automate

Power Automate Les flux cloud sont des workflows qui s’exécutent dans le cloud. Il peut s’agir de flux automatisés déclenchés par un événement, comme l’arrivée d’un e-mail d’une personne spécifique. Il peut s’agir de flux instantanés que vous démarrez d’un simple clic sur un bouton, comme un rappel à votre équipe que vous envoyez depuis votre appareil mobile. Il peut s’agir de flux planifiés qui s’exécutent à une heure précise, comme un chargement quotidien de données dans SharePoint ou une base de données. Vous pouvez également automatiser les tâches répétitives à partir de votre bureau ou de votre appareil mobile.

Familiarisez-vous avec les limites des flux automatisés, planifiés et instantanés en ce qui concerne le débit, les requêtes, la simultanéité, les boucles et la décomposition des lots. Assurez-vous de prendre en compte ces limites lors de la conception de votre flux de travail.

Réduisez le risque en planifiant la gestion des erreurs.

Voici quelques exemples d’utilisation de flux pour exécuter des tâches en arrière-plan : Power Automate

Microsoft Dataverse

Microsoft Dataverse colonnes et cumuls calculés :

  • Les colonnes de formule sont des colonnes qui affichent une valeur calculée dans un Microsoft Dataverse tableau.

  • Les colonnes calculées automatisent les calculs manuels utilisés dans votre processus d’entreprise. Par exemple, un vendeur peut souhaiter connaître le revenu pondéré d’une opportunité qui repose sur le revenu estimé d’une opportunité multiplié par la probabilité. Ou bien, il peut vouloir appliquer automatiquement une remise si une commande est supérieure à un certain montant. Une colonne calculée peut contenir des valeurs telles que le résultat d’opérations mathématiques simples, ou d’opérations conditionnelles, telles que greater than ou if-else.

  • Les colonnes cumulatives permettent aux utilisateurs d’obtenir un aperçu des données grâce au suivi des mesures métier clés. Une colonne cumulative contient une valeur agrégée calculée sur les lignes associées à une ligne particulier. Cela inclut les tables habituelles et les tables d’activités telles que des e-mails et des rendez-vous. Dans les scénarios plus complexes, vous pouvez agréger des données sur la hiérarchie de lignes. En tant qu’administrateur ou personnalisateur, vous pouvez définir des colonnes cumulatives à l’aide des outils de personnalisation contenus dans Power Apps, sans qu’il soit nécessaire d’écrire du code.

Les opérations en arrière-plan peuvent envoyer des requêtes qui Dataverse sont traitées de manière asynchrone. Les opérations en arrière-plan sont utiles lorsque vous ne souhaitez pas maintenir une connexion pendant l’exécution d’une demande.

Les plug-ins sont des gestionnaires d’événements personnalisés qui s’exécutent dans réponse lors d’un événement spécifique déclenché lors du traitement d’une Microsoft Dataverse opération de données.

Microsoft Dataverse offre également une solution puissante pour obtenir une architecture de données plus efficace et réduire la charge de travail côté client grâce à des plug-ins low-code. Ces plug-ins sont des flux de travail réutilisables en temps réel qui exécutent un ensemble spécifique de commandes au sein de Dataverse, qui s’exécutent côté serveur et sont déclenchées par des gestionnaires d’événements personnalisés.

Liste de contrôle de fiabilité

Référez-vous à l’ensemble complet des recommandations.