Altova FlowForce Server 2025 Advanced Edition

Une file d’attente est un processeur de tâches qui contrôle le nombre d’instances de tâches qui peuvent être exécutées à un moment et le délai entre les exécutions. À travers la configuration de la file d’attente, vous pouvez utiliser les ressources de serveur de manière plus efficace.

 

Vous pouvez créer une file d’attente à l’intérieur d’une tâche (file d’attente locale) ou définir une file d’attente comme objet autonome (file d’attente globale). Une file d’attente locale traite uniquement la tâche dans laquelle la file d’attente locale a été configurée. Une file d’attente globale peut traiter les instances d’une tâche et les instances de différentes tâches.

 

Les files d’attente globales fournissent un mécanisme pour gérer une charge de serveur sur un appareil FlowForce ainsi que sur un cluster (voir ci-dessous).

 

Les files d’attente locales et globales dans un environnement cluster (Advanced Edition)

Configurer un cluster signifie que le traitement est distribué parmi les membres du cluster : un appareil maître et un ou plusieurs appareils travailleurs. Pour une file d’attente globale, vous pouvez sélectionner un membre cluster à exécuter sur - qui peut être le maître ou tout travailleur - uniquement le maître ou uniquement le travailleur. Avec les files d’attente locales, les tâches peuvent être exécutées uniquement sur l’appareil maître et non sur tout autre membre cluster.

 

Considérations liées à la sécurité

Les files d’attente utilisent le mécanisme d’accès à la sécurité que tout autre objet de configuration de FlowForce Server. Un utilisateur doit avoir le privilège Définir les queues d’exécution afin de créer des queues, voir aussi Comment les privilèges fonctionnent. De plus, les utilisateurs peuvent consulter les queues, ou assigner des tâches aux queues, uniquement s’ils ont des permissions de conteneur appropriées (pas les mêmes que les privilèges), voir aussi Comment les permissions fonctionnent. Par défaut, tout utilisateur authentifié obtient une permission Queue - Use, ce qui signifie qu’il peut assigner des tâches aux queues.

 

Pour restreindre l’accès aux queues, naviguez vers le conteneur là où la queue est définie, et modifiez la permission du conteneur à Queue - No access pour le rôle authenticated. Puis, attribuez la permission Queue - Use à tout rôle ou utilisateur dont vous avez besoin. Pour plus d’information, voir Restreindre l’accès au /Conteneur public.

 

 

Pour des informations sur le traitement distribué, voir Cluster. Pour des informations sur la création de files d’attente locales et autonomes, voir les sous-sections ci-dessous.

 

Files d’attente (queue) locales

Pour configurer une file d’attente locale, sélectionnez l’option Définir la file d’attente locale depuis la page de configuration de la tâche et spécifiez vos préférences de queue/file d’attente. L’image ci-dessous illustre les paramètres de queue par défaut. Pour les détails sur les propriétés Temps minimum entre les exécutions et exécutions parallèles maximum, voir Paramètres de queue ci-dessous.

ffadv_queue

 

Files d’attente globales

Pour créer une copie de l’objet autonome, suivez les étapes suivantes :

 

1.Ouvrir la page de configuration et naviguez vers le conteneur où vous souhaitez créer une file d’attente.

2.Cliquez sur Créer et sélectionnez Créer file d’attente (capture d’écran ci-dessous).

ff_create_queue

3.Saisissez un nom pour la file d'attente et, en option, une description.

4.Configurer les paramètres pertinents. Pour les détails, voir Paramétrages de queue ci-dessous.

5.Cliquez sur Enregistrer.

 

Paramètres de la file d’attente

Les paramètres liés à la file d’attente sont recensés ci-dessous.

 

Nom de la file d’attente

Il s’agit d’un champ obligatoire qui représente le nom d’une file d’attente. Le nom pourrait contenir uniquement des lettres, chiffres, espaces uniques, et un tiret bas (_), un tiret (-), et un point (.). Il ne doit pas commencer ou terminer par des espaces.

 

Description de la file d’attente

Description optionnelle.

 

Run on (Advanced Edition)

Spécifie comment toutes les instances de tâches de cette file d’attente doivent être exécutées :

 

Maître ou travailleur : Les instances de tâches qui font partie de cette file d’attente seront exécutées sur les appareils maître ou un appareil travailleur disponible, dépendant des noyaux du serveur disponibles.

Uniquement maître : Les instances de tâches seront exécutées uniquement sur l’appareil maître.

Tout travailleur uniquement : Les instances de tâches seront exécutées sur tout travailleur disponible, mais jamais sur le maître.

 

Temps minimum entre les exécutions

Une file d’attente fournit des créneaux d’exécution. Le nombre de créneaux disponibles est géré par le paramètre exécutions parallèles maximum multiplié par le nombre de travailleurs attribués conformément à la règle active actuellement. Chaque créneau exécutera des instances de tâche par séquence.

 

Le paramètre Temps minimum entre les marches conserve un créneau marqué en tant qu'occupé pour une période de temps brève une fois qu'une instance de tâche s'est terminée, ce qui a pour conséquence qu'il ne choisira pas l'instance de tâche suivante immédiatement. Cela réduit le débit maximum pour cette queue d'exécution, mais fournit un temps de CPU pour d'autres queues d'exécution et d'autres processus sur le même appareil.

 

Exécutions parallèles maximum

Cette option définit le nombre d’exécutions de créneaux d’exécutions disponibles dans une file d’attente. Chaque créneau exécute des instances de tâche de manière séquentielle, donc le paramètre détermine combien d’instances de la même tâche peuvent être exécutées en parallèle dans la file d’attente actuelle. Notez, toutefois, que le nombre d’instances auxquelles vous donnez l’autorisation d’être exécutées en parallèle sera en concurrence avec les ressources d’appareils disponibles. Augmenter cette valeur pourrait être acceptable pour les files d’attente qui traitent les tâches « lightweight » qui n’exécutent pas d’opérations intensives I/O ou ont besoin d’un temps CPU significatif. La valeur par défaut (1 instance) est adaptée pour les files d’attente qui traitent les tâches intensives en ressources, pour assurer que seule une des instances de tâche « heavyweight » est traitée à la fois.

 

Cette option n’affecte pas le nombre de requêtes HTTP parallèles maximum acceptées par FlowForce Server (dans les requêtes HTTP des clients qui invoquent les tâches configurées comme services web). Pour les détails, voir Reconfigurer les 'pool threads' FlowForce Server.

 

 

Ensembles multiples de paramètres de queue (Advanced Edition)

Vous pouvez définir des ensembles multiples de paramètres de la file d’attente, chacun avec des exigences de traitement différentes, en cliquant sur le bouton add. Pour changer la priorité des configurations de la file d’attente, utilisez les boutons up_arrow et down_arrow. Par exemple, vous pouvez définir une règle dans le cas où seul un maître est disponible et une autre règle dans le cas où les maîtres et les travailleurs sont disponibles. Ceci vous permet de créer un mécanisme de repli pour la file d’attente dans le cas qu’un membre du cluster devient indisponible, par exemple.

 

Lorsque FlowForce Server traite des files d’attente, le serveur surveille sans cesse l’état du cluster et de ses membres Si vous avez défini des règles pour les multiples files d’attente, FlowForce Server les évaluera selon l’ordre défini, du haut vers le bas, et prend la première règle qui a au moins un membre du cluster selon le paramètre Run On. Pour plus d’information sur l’opération dans les modes maître et travailleur, voir Cluster.

 

Exemple

En guise d’exemple, jetons un œil sur une configuration où le cluster inclut un appareil maître et quatre appareils travailleurs. Les paramètres de la file d’attente sont définis tels que ci-dessous :

ff_queue_settings

Avec la configuration illustrée ci-dessus, FlowForce traiterait la file d’attente comme suit :

 

Si tous les travailleurs sont disponibles, la règle supérieure sera appliquée. Notamment, jusqu’à 16 instances de tâches sont autorisées pour l'exécution simultanée (4 instances pour chaque travailleur). Le temps minimum entre les exécutions est de 0 secondes.

Si uniquement trois travailleurs sont disponibles, la règle supérieure s’appliquera toujours. Notamment, jusqu’à 12 instances de tâche sont autorisées pour l’exécution simultanée, et le temps minimum entre les exécutions est de 0 secondes.

Si aucun travailleur n’est disponible, la deuxième règle sera appliquée : notamment, uniquement 1 instance de tâche est exécutée à un moment donné, et le temps minimum entre les exécutions est de 5 secondes.

 

Ce type d’exécution rend l’exécution encore possible en l’absence de travailleurs. Veuillez noter que la règle « uniquement maître » est plus stricte (1 instance seulement, et 5 secondes de délai entre les exécutions), de manière à ne pas retirer trop de puissance de traitement depuis l’appareil maître lorsque tous les travailleurs échouent.

 

Attribuer des tâches aux files d’attente

Une fois que vous avez configuré la file d’attente, vous allez devoir y attribuer une tâche sur la page de configuration de la tâche. À cette fin, nous appliquons la étapes ci dessous :

 

1.Ouvrez la configuration de la tâche que vous souhaitez attribuer à la file d’attente.

2.Parcourez les paramètres de la file d’attente en bas de la page.

3.Sélectionnez l’option Choisir queue existante et fournissez le chemin à l’objet de file d’attente désiré (capture d’écran ci-dessous).

ff_assign_queue

 

Priorité dans une file d’attente (Édition avancée)

Dans FlowForce Server Advanced Edition, attribuez la priorité aux tâches dans la file d’attente. La priorité est estimée sur la base de toutes les tâches attribuées à la file d’attente. La priorité peut être faible, en-dessous de normale, normale, au-dessus de normale ou élevée. La priorité par défaut est normale. Vous pouvez définir la priorité pour tout type de trigger. Si votre tâche a configuré de multiples déclencheurs, vous pouvez sélectionner différentes valeurs de priorité pour eux, le cas échéant.

 

Files d’attente globales

Définir la priorité Trigger est particulièrement important pour les files d’attente globales, car vous pouvez décider quelles tâches sont plus importantes dans une file d’attente et devraient être déclenchées d’abord. Dans la plupart des cas, une tâche n’aura qu’un déclencheur. Une tâche dont le déclencheur a une priorité élevée et dont les conditions trigger et dont les conditions ont été déclenchées d’abord.

 

En partant du fait qu’il y a plusieurs tâches dans une file d’attente globale, et que chaque tâche a plusieurs déclencheurs à priorité différente, FlowForce cochera d’abord les déclencheurs à priorité élevée. Si les conditions du déclencheur ne sont pas remplies, FlowForce Server cochera ensuite les déclencheurs à priorité inférieure. Pour une tâche à plusieurs déclencheurs, il serait plus judicieux de définir la même valeur de priorité pour tous (par ex., priorité élevée si la tâche est plus importante que d’autres dans la file d’attente).

 

Files d’attente locales

Une file d’attente locale traite les instances pour une et la même tâche. Si seul un déclencheur est configuré, la valeur de priorité sera ignorée. S’il existe plusieurs déclencheurs à priorités différentes, les déclencheurs se feront concurrence. Par exemple, une tâche a un minuteur et un déclencheur ‘file-system’. Le minuteur est de priorité inférieure, alors que le déclencheur ‘file-system’ est de priorité élevée. Si la condition du minuteur a été remplie, et s’il n’y a pas d’autres fichiers à traiter, le minuteur démarrera sa tâche plus tôt que le deuxième déclencheur. Toutefois, s’il faut traiter de multiples fichiers, le minuteur attendra, et le déclencheur ‘file-system’ aura la priorité.

 

© 2019-2025 Altova GmbH