Ce texte a été traduit en utilisant le système de traduction automatisé de Salesforce. Répondez à notre sondage pour nous faire part de vos commentaires sur ce contenu et nous dire ce que vous aimeriez voir ensuite.

Ce guide vous aidera à évaluer l'approche adaptée à vos besoins en traitement asynchrone sur Salesforce Platform. Il explique chaque approche, en détaillant les forces et les limitations de chacune. La plupart des approches sont alignées sur une fonctionnalité produit, mais certaines utilisent plusieurs fonctionnalités en coordination. Le guide inclut des cas d'utilisation pour souligner quand utiliser chaque approche.

Le traitement asynchrone offre deux avantages majeurs pour votre architecture. Premièrement, il augmente l'évolutivité, car les processus asynchrones ont des limites en gouverneur plus élevées. Deuxièmement, les requêtes asynchrones sont exécutées dans leurs propres threads afin de permettre aux utilisateurs d'effectuer d'autres tâches pendant que les tâches asynchrones sont exécutées en arrière-plan.

Notez que ce guide se concentre exclusivement sur le choix d'une technologie de traitement asynchrone dans Salesforce Platform. La section Ressources répertorie d'autres ressources qui facilitent votre processus de décision.

Salesforce Platform Salesforce Lightning Platform est une plate-forme complète pilotée par l'IA qui unifie les employés, les agents IA autonomes, les données de l'entreprise et les applications dans un système unique et de confiance afin d'améliorer la productivité et l'expérience client. Il permet la création d'une "entreprise agentique" en connectant les applications Customer 360, Data Cloud, et Slack pour une automatisation de bout en bout.

Ce document ne couvre pas les technologies d'autres écosystèmes tels que MuleSoft, Informatica, Commerce Cloud, Tableau et Marketing Cloud.

  • Avant d'utiliser le traitement asynchrone, assurez-vous que vos cas d'utilisation correspondent au modèle. Les modèles asynchrones n'ont pas de contrat de niveau de service, sont soumis à plusieurs mécanismes de gouverneur, peuvent avoir des limites de capacité définies en fonction de la licence et peuvent entraîner des retards de traitement en raison de la nature limitée des ressources allouées à l'infrastructure asynchrone dans Salesforce Platform. Tenez compte des limitations ci-dessous lors de l'utilisation d'un traitement asynchrone dans des scénarios où un utilisateur demande une réponse du système avant de pouvoir poursuivre son travail.
  • Le traitement asynchrone avec Salesforce n'est pas une solution pour des besoins d'évolutivité illimités. Salesforce Platform n'évolue pas à l'infini et les modèles asynchrones sont soumis à des limitations. Le traitement asynchrone utilise des threads, qui contiennent les informations contextuelles dont un processeur a besoin pour exécuter un flux d'instructions. Les threads peuvent être exécutés en parallèle. Le nombre de threads disponibles dans un processeur est limité. Par conséquent, la plate-forme a mis en place des mécanismes pour utiliser ses threads disponibles aussi efficacement que possible. Le mécanisme de contrôle de flux de la plate-forme empêche les organisations de consommer trop de threads et d'affecter négativement les autres organisations. L'algorithme d'utilisation équitable de la plate-forme contrôle également le nombre de threads disponibles pour chaque type de message.
  • Compte tenu des événements qui peuvent entraîner des charges extrêmes. Lorsque vous concevez des processus asynchrones, assurez-vous qu'ils peuvent gérer de façon prévisible les pics de charge de travail et les accalmies. Examinez comment votre implémentation gère les événements inattendus, tels que les pannes de courant, et concevez des mesures de protection qui atténuent la perte de données ou la perte de fonctionnalité.

Le tableau ci-dessous présente les outils disponibles pour le traitement asynchrone avec Salesforce. Consultez ce tableau pour examiner les principales caractéristiques de chaque outil pendant votre processus de prise de décision. Consultez Cas d'utilisation et Points de décision pour choisir les outils adaptés à votre architecture.

Approche Description Compétences requises Licences et limites
Apex Queueable Utilisé pour les processus qui impliquent de longues opérations de base de données ou des appels externes de service Web. Apex Queueable offre des fonctionnalités telles que les ID de tâche, la prise en charge des types non primitifs et l'enchaînement des tâches. Pro-code Le nombre de licences peut augmenter les limitations.
Batch Apex Élaborez des processus complexes et longs qui impliquent des millions d'enregistrements en divisant votre ensemble d'enregistrements et en le traitant en segments gérables. Pro-code Le nombre de licences peut augmenter les limitations.
Apex planifié Exécutez Apex à une heure planifiée définie par une expression cron. Bien que l'action de planifier Apex via l'expression cron soit un processus asynchrone, le code sous-jacent est exécuté de façon synchrone au démarrage de la tâche. Pro-code Le nombre de licences peut augmenter les limitations.
Appels externes de continuation Apex Exécutez des appels externes à partir de méthodes Apex exécutées dans un contexte de transaction synchrone. Pro-code Non
Trajet asynchrone (flux déclenchés par un enregistrement) Exécutez une opération que vous souhaitez exécuter sur son propre temps. Évitez les erreurs DML mixtes qui se produisent lorsque vous mettez à jour une valeur dans un enregistrement associé qui ne fait pas partie de l'enregistrement ayant déclenché un flux. Code faible Le nombre et le type de licences peuvent augmenter les limitations.
Parcours planifié (après validation des flux) Exécutez à une heure planifiée dynamiquement après un événement déclenchant, par exemple lors de la création, de la mise à jour ou de la suppression d'un enregistrement. Code faible Le nombre et le type de licences peuvent augmenter les limitations.
Flux planifiés Exécutez un flux en arrière-plan à une heure spécifiée et à une fréquence répétée (quotidienne, hebdomadaire ou unique) pour exécuter des actions sur un lot d'enregistrements. Code faible Le nombre et le type de licences peuvent augmenter les limitations.
Déclencheurs d'événements de plate-forme Couplez librement Salesforce à des systèmes externes et communiquez entre des composants asynchrones dans Salesforce Platform. Code bas + code pro Une licence complémentaire est requise pour les cas d'utilisation d'événements de plate-forme à haut volume
Capture des données Capturez et traitez les événements de modification de façon asynchrone une fois la transaction de base de données engagée. Pro-code Une licence complémentaire est requise pour dépasser l'allocation de référence.
API de transfert en masse Insérez, mettez à jour, mettez à jour/insérez, interrogez ou supprimez de nombreux enregistrements de façon asynchrone, puis traitez les résultats ultérieurement. Pro-code Il y a des limites.
Actions Lightning Autorisez les pages Lightning à interagir avec le serveur sans forcer les utilisateurs à actualiser entièrement la page. Code faible Non

Le tableau ci-dessous présente une vue d'ensemble des points à prendre en compte lorsque vous choisissez l'outil asynchrone à utiliser.

Compétences requises Certains outils décrits dans ce guide nécessitent un code, tandis que d'autres peuvent être configurés par déclaration. En examinant vos options, tenez compte des compétences des membres de votre équipe. Notez que même si des développeurs sont disponibles pour votre implémentation initiale (par l'intermédiaire d'un partenaire d'implémentation, par exemple), il peut être nécessaire de modifier vos solutions à l'avenir. Si votre équipe de maintenance n'a pas de développeur, une option à faible code peut être plus adaptée.
Type de limites de plate-forme appliquées Déterminez le type de limite qui s'applique à l'exécution. En concevant vos solutions, réfléchissez attentivement à la façon dont le volume et la fréquence des transactions seront pris en compte dans les limites du gouverneur pour l'approche choisie chaque jour. Calculez le nombre d'exécutions qui auront lieu chaque jour. Assurez-vous que les valeurs calculées respectent les limites associées aux outils que vous avez sélectionnés.
Latence Déterminez la vitesse à laquelle les résultats du traitement seront disponibles sur la plate-forme. Pour certaines approches, les changements seront presque immédiats, alors que pour d'autres, ils peuvent prendre quelques minutes ou quelques heures.

Lorsque vous sélectionnez un outil pour le traitement asynchrone, commencez par évaluer les besoins de votre organisation et les ressources disponibles. Votre objectif est de sélectionner le ou les outils qui réduisent les coûts d'implémentation et de maintenance, tout en garantissant l'évolutivité et en limitant la probabilité d'infractions aux limites. Cet objectif dépend des considérations techniques exposées précédemment, ainsi que de la composition de votre équipe.

Prenons l'exemple d'un processus de commande asynchrone dans Salesforce. Lorsqu'une commande est enregistrée, elle déclenche un message à un système de gestion d'entrepôt externe avec des instructions spéciales pour emballer et expédier un article. L'utilisateur qui passe la commande n'a pas besoin d'une réponse immédiate du système de gestion de l'entrepôt. Par conséquent, la demande peut être envoyée de façon asynchrone. Le traitement asynchrone permet à l'utilisateur de poursuivre son travail sans attendre une réponse.

Pour ce cas d'utilisation, vous pouvez envisager d'implémenter avec Apex . Cette approche ne fonctionnera que si vous avez dans votre équipe des développeurs Apex capables de maintenir votre solution pro-code. Sinon, une approche déclarative est plus logique. Notez également que différents ensembles de limites s'appliquent à différents outils.

Le tableau ci-dessous répertorie les cas d'utilisation courants dans la colonne la plus à gauche, suivis d'une description. La colonne Premier choix fournit l'approche la plus typique utilisée pour satisfaire un tel cas d'utilisation, ainsi que la justification de l'approche Premier choix. Utilisez-le comme point de départ de votre analyse. L'approche Premier choix peut avoir des limitations qui ne fonctionneront pas pour votre cas d'utilisation.

Cas d'utilisation Description Approche de premier choix Justification
Traitement par lot hautement performant Toute automatisation qui doit traiter efficacement des milliers ou des millions d'enregistrements Batch Apex Apex par lot fournit des API riches pour l'interface avec la plate-forme et pour la vitesse brute.
Tâche de nettoyage des données Une tâche exécutée régulièrement, ou à la demande, qui nettoie les données. Par exemple, la déduplication, la vérification de l'adresse ou la consolidation des données. Batch Apex Apex par lot fournit des API riches pour l'interface avec la plate-forme et pour la vitesse brute.
Tâche de cumul nocturne Tâche qui calcule les données de cumul à la fin d'un jour ouvrable. Batch Apex Apex par lot fournit des API riches pour l'interface avec la plate-forme et pour la vitesse brute.
Logique déclenchée par un enregistrement Exécutez une logique en réponse à une mise à jour d'enregistrement. Varie Consultez notre guide de décision complémentaire, Automatisation des événements déclenchés par un enregistrement. Il inclut un arbre de décision pour les cas d'utilisation asynchrones, notamment Apex Queueable, Apex par lot, Apex planifié, Flux planifié, Flux de chemin asynchrone et Capture des données de modification.
Mises à jour en cascade via un graphique d'objet Permet d'exécuter rapidement l'action d'enregistrement d'un utilisateur, en reportant l'exécution asynchrone des mises à jour en cascade d'autres objets. Queueable Apex Apex Queueable dispose de puissantes fonctionnalités d'enchaînement qui permettent à la logique de diviser une chaîne de mises à jour en une série de transactions asynchrones.
Traitement planifié spécifique à l'enregistrement Automatisation à une date future et dynamique spécifique à l'enregistrement (par exemple, 3 jours avant une date de fermeture). Flux avec un parcours planifié Les parcours planifiés offrent une force unique à Flux, car la plate-forme gère automatiquement la planification, l'annulation et la replanification de ces parcours si les données de l'enregistrement changent.
Invocation parallèle de plusieurs services externes lents Lors d'une exécution synchrone, plusieurs services externes sont invoqués en parallèle pour optimiser le temps d'exécution global. Appels externes de continuation Apex L'autorisation d'exécution simultanée de plusieurs appels externes lents réduit le temps total nécessaire pour réaliser le travail.
Migration des données d'enregistrements à partir d'un système externe Déplacez de grandes quantités d'enregistrements vers Salesforce Platform à partir d'un système externe. Un processus unique ou planifié régulièrement. API de transfert en masse Il s'agit de l'approche la plus efficace et la plus conviviale pour la migration des données.
Exécution d'une logique supplémentaire sur un système externe Modèle de notification par oubli d'un système externe d'un événement sur la plate-forme, puis permettant à ce système de traiter l'événement de façon asynchrone. Événements de plate-forme ou Capture des données modifiées Un modèle pub-sub fonctionne mieux ici et permet au système externe de traiter l'événement lorsqu'il est prêt. Pour plus d'informations sur ce schéma, consultez Architecture pilotée par les événements.

Le tableau Cas d'utilisation indique l'approche la plus adaptée à chaque cas d'utilisation. Cependant, vous devez vérifier si la technologie First Choice répond aux besoins spécifiques de votre cas d'utilisation. Déterminez notamment si l'approche choisie peut respecter les limites du gouverneur de votre organisation.

Lorsque vous avez identifié une approche candidate pour votre cas d'utilisation, le guide Asynchronous Processing Basics Guide peut vous aider à vérifier entièrement la solution.

Les ressources supplémentaires suivantes peuvent vous aider à prendre des décisions :