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 travail 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. Si aucun thread de travail n’est disponible pour exécuter un flux, le flux est mis en file d’attente jusqu’à ce qu’il y ait un thread de travail disponible pour l’exécuter.
- Élevé
- Moyenne
- Faible
La définition d’une priorité de flux détermine l’ordre dans lequel les threads des agents sélectionnent des 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 l’exécution de certains flux de priorité inférieure, même lorsqu’il existe des flux de priorité supérieure dans la file d’attente. Lorsqu’il y a une file d’attente de travail volumineuse à exécuter, la plupart des flux de priorité basse doivent attendre jusqu’à ce que les flux de priorité élevée soient exécutés. 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’interrompre pour attendre pendant un certain temps. Lorsque le flux reprend son exécution, il s’exécute à 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’un flux de priorité basse s’exécute pendant plus de deux minutes, le système vérifie si des flux de priorité supérieure ont été exécutés au cours des cinq dernières minutes. Si aucun flux de priorité élevée n’a été 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 y a un arriéré d’au moins 100 flux de priorité élevée en attente d’exécution dans la file d’attente de l’événement, le système met en pause le flux de priorité basse en cours d’exécution. La mise en pause d’un flux préserve son contexte et ses données. Un flux en pause revient à la file d’attente d’événements 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, passez en revue le nombre de flux de priorité haute que votre système génère et exécute. Consultez les considérations de conception pour savoir quand définir un flux sur une priorité élevée ou faible. Si vos flux de basse priorité ne sont toujours pas en cours d’exécution, vous pouvez désactiver la mise en pause des flux de basse priorité avec une propriété système. Reportez-vous à la rubrique Studio de workflow Propriétés système du flux pour modifier la valeur de la propriété com.glide.hub.pause_low_priority_flows_enabled.
Prise en charge de l’API rapide
La méthode API rapide ne prend pas en charge les valeurs de priorité de flux. Les flux exécutés par la méthode d’API rapide ignorent les paramètres de priorité de flux définis précédemment et s’exécutent à la place avec une priorité moyenne.
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 à une priorité élevée
- Utilisez un mélange de priorités plutôt que de définir tous les flux sur une priorité élevée. Les threads de travail utilisent la priorité relative entre les flux pour sélectionner une tâche. Si tous vos flux s’exécutent à une priorité élevée, il n’y a pas de flux de priorité inférieure à faire attendre.
- Évitez de définir la priorité des flux pour les flux qui doivent être mis en pause
- Conservez les flux qui doivent être mis en pause à la priorité moyenne par défaut, 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 l’activité
- Limitez la priorité haute aux flux qui ont une valeur commerciale élevée, qui s’exécutent rarement et qui ont une exécution courte. Évitez de définir des flux de volumes élevés 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 le nombre de threads de travail disponibles pour exécuter d’autres flux.
- Utiliser une priorité basse pour les flux à volume élevé
- Exécutez des flux à volume élevé avec une priorité faible afin que d’autres flux sensibles au temps puissent s’exécuter en premier. Les flux de faible priorité ne doivent pas être urgents.
- Utiliser une priorité moyenne pour les flux sensibles au temps
- Utilisez la priorité de flux par défaut lorsqu’un flux présente une certaine urgence temporelle par rapport à d’autres flux.