Certaines rubriques d'événements prennent en charge le blocage d'événements. Le comportement d'un abonnement d'extensibilité varie selon que la rubrique prend en charge ces types d'événement et dépend de la manière dont vous configurez l'abonnement.
Les abonnements d'extensibilité Cloud Assembly peuvent utiliser deux grands types de rubriques d'événements : les rubriques d'événements non bloquantes et bloquantes. Le type de rubrique d'événement définit le comportement de l'abonnement d'extensibilité.
Rubriques d'événements non bloquantes
Les rubriques d'événements non bloquantes vous permettent uniquement de créer des abonnements non bloquants. Les abonnements non bloquants sont déclenchés de façon asynchrone et vous ne pouvez pas vous fier à l'ordre dans lequel les abonnements sont déclenchés.
Rubriques d'événements bloquantes
Certaines rubriques d'événements prennent en charge le blocage. Si un abonnement est marqué comme bloquant, tous les messages qui répondent aux conditions définies ne sont reçus par aucun autre abonnement avec des conditions correspondantes tant que l'élément exécutable de l'abonnement bloquant n'est pas exécuté.
Les abonnements bloquants s'exécutent par ordre de priorité. La valeur de la priorité la plus élevée est 0 (zéro). Si vous disposez de plusieurs abonnements bloquants pour la même rubrique d'événements avec le même niveau de priorité, les abonnements s'exécutent dans l'ordre alphabétique inverse en fonction de leur nom d'abonnement. Une fois tous les abonnements bloquants traités, le message est simultanément envoyé à tous les abonnements non bloquants. Étant donné que les abonnements bloquants s'exécutent simultanément, la charge utile de l'événement modifié inclut l'événement mis à jour lors de la notification des abonnements suivants.
Vous pouvez utiliser des rubriques d'événements bloquantes pour gérer plusieurs abonnements dépendant les uns des autres.
Par exemple, vous pouvez posséder deux abonnements aux workflows de provisionnement et le second abonnement varie selon les résultats du premier abonnement. Le premier abonnement modifie une propriété au cours du provisionnement et le second abonnement enregistre la nouvelle propriété (par exemple, un nom de machine) dans un système de fichiers. La priorité de l'abonnement ChangeProperty est de 0 et celle de l'abonnement RecordProperty est de 1, car le second abonnement utilise les résultats du premier abonnement. Lors du provisionnement d'une machine, l'exécution de l'abonnement ChangeProperty commence. Étant donné que les conditions de l'abonnement RecordProperty reposent sur une condition de post-provisionnement, un événement déclenche l'abonnement RecordProperty. Cependant, puisque le workflow ChangeProperty est un workflow bloquant, l'événement n'est pas reçu tant que le workflow n'est pas terminé. Lorsque le nom de la machine est modifié et que le premier abonnement au workflow est terminé, le second abonnement au workflow s'exécute et enregistre le nom de la machine dans le système de fichiers.
Élément exécutable de récupération
Pour les rubriques d'événements bloquantes, vous pouvez ajouter un élément exécutable de récupération à l'abonnement. L'élément exécutable de récupération d'un abonnement s'exécute en cas d'échec de l'élément exécutable principal. Par exemple, vous pouvez créer un abonnement au workflow pour lequel l'élément exécutable principal est un workflow qui crée des enregistrements dans un système CMDB tel que ServiceNow. Même si l'abonnement au workflow échoue, certains enregistrements peuvent être créés dans le système CMDB. Dans ce scénario, un élément exécutable de récupération peut être utilisé pour nettoyer les enregistrements laissés dans le système CMDB par l'élément exécutable ayant échoué.
Pour les cas d'utilisation qui incluent plusieurs abonnements dépendant les uns des autres, vous pouvez ajouter une propriété ebs.recover.continuation à l'élément exécutable de récupération. Avec cette propriété, vous pouvez indiquer si le service d'extensibilité doit continuer avec l'abonnement suivant dans votre chaîne si l'abonnement actuel échoue.