Priorité du flux
Spécifiez la priorité que vous souhaitez donner à un flux en arrière-plan par rapport aux autres flux en attente d'exécution. Exécutez un groupe de flux de priorité supérieure avant d’exécuter des flux de priorité inférieure.
Vous ne pouvez définir une priorité de flux que pour les flux qui s’exécutent en arrière-plan. Les flux en arrière-plan s’exécutent à partir du prochain thread de travailleur disponible. Par défaut, Studio de workflow peut utiliser jusqu’à la moitié des threads de travail disponibles pour exécuter des flux en arrière-plan. S’il n’y a aucun thread d’agent disponible pour exécuter un flux, le flux est mis en file d’attente jusqu’à ce qu’il y ait un thread d’agent disponible pour l’exécuter.
- Élevé
- Moyenne
- Faible
La définition d’une priorité de flux détermine l’ordre dans lequel les threads de l’agent sélectionnent les flux dans la file d’attente. Les threads de travail exécutent plusieurs flux de priorité supérieure avant d’exécuter un flux de priorité inférieure. Ce schéma de priorité garantit que certains flux de priorité inférieure sont exécutés même lorsque des flux de priorité élevée sont placés dans la file d’attente. Lorsqu’il y a une grande file d’attente de travail à exécuter, la plupart des flux de priorité basse doivent attendre l’exécution des flux de priorité élevée. Une fois les flux de priorité élevée exécutés, les threads de travail peuvent exécuter des flux de priorité inférieure.
Les flux perdent également leur valeur de priorité lorsqu’ils sont mis en pause pour une raison quelconque. Les flux qui reprennent après une pause s’exécutent à la priorité moyenne par défaut. Par exemple, un flux peut commencer à s’exécuter avec une priorité élevée, puis s’arrêter pour attendre une durée. Lorsque le flux reprend son exécution, il s’exécute avec une priorité moyenne.
Mise en pause automatique des flux de faible priorité
Par défaut, le système recherche les tickets pour lesquels des flux de priorité élevée sont bloqués par l’exécution de flux de priorité inférieure. Chaque fois qu’une priorité faible s’exécute pendant plus de deux minutes, le système vérifie si des flux de priorité supérieure se sont exécutés au cours des cinq dernières minutes. Si aucun flux de priorité élevée ne s’est exécuté récemment, le système vérifie le nombre de flux en attente d’exécution dans la file d’attente de l’événement. S’il existe un backlog d’au moins 100 flux de priorité élevée en attente d’exécution dans la file d’attente d’événements, le système met en pause le flux de priorité basse en cours d’exécution. La pause d’un flux préserve son contexte et ses données. Un flux en pause revient à la file d’attente de l’événement pour s’exécuter lorsqu’un agent est disponible pour le traiter.
Si vos flux de priorité basse ne s’exécutent pas comme prévu, examinez le nombre de flux de priorité élevée que votre système génère et exécute. Consultez les considérations relatives à la conception pour savoir quand définir un flux sur une priorité élevée ou faible. Si vos flux de priorité basse ne sont toujours pas en cours d’exécution, vous pouvez désactiver la mise en pause de la priorité basse avec une propriété système. Voir pour Studio de workflow Propriétés système du flux modifier la valeur de la propriété com.glide.hub.pause_low_priority_flows_enabled.
Prise en charge rapide de l’API
La méthode d’API rapide conserve les paramètres de priorité. Les flux exécutés par la méthode API rapide s’exécutent avec la même priorité que celle définie précédemment pour le flux.
Considérations relatives à la conception
Suivez ces considérations de conception lors de la définition de la priorité du flux.
- Évitez de définir tous les flux pour qu’ils s’exécutent avec une priorité élevée
- Utilisez une combinaison de priorités plutôt que de définir tous les flux sur une priorité élevée. Les threads des agents utilisent la priorité relative entre les flux pour sélectionner le travail. Si tous vos flux s’exécutent avec une priorité élevée, il n’y a alors aucun flux de priorité inférieure à faire attendre.
- Évitez de définir la priorité du flux pour les flux qui doivent être mis en pause
- Conservez la priorité moyenne par défaut des flux qui doivent être mis en pause, car un flux qui s’interrompt perd sa valeur de priorité lorsqu’il reprend son exécution.
- Utiliser une priorité élevée pour les flux critiques pour le métier
- Limitez la priorité élevée aux flux qui ont une valeur commerciale élevée, qui s’exécutent rarement et qui ont une courte durée d’exécution. Évitez de définir les flux à volume élevé sur une priorité élevée, car cela limite le nombre de threads de travail disponibles pour exécuter d’autres flux. Un flux de priorité élevée de longue durée peut également réduire les threads de travail disponibles pour exécuter d’autres flux.
- Utiliser la priorité basse pour les débits à volume élevé
- Exécuter des flux à volume élevé avec une priorité basse afin que les autres flux sensibles au facteur temps puissent s’exécuter en premier. Les flux de faible priorité ne doivent pas être urgents.
- Utiliser la priorité moyenne pour les flux sensibles au facteur temps
- Utilisez la priorité de flux par défaut lorsqu’un flux a une certaine urgence de temps par rapport à d’autres flux.