Passer au contenu principal
pdf?stylesheet=default
Blackboard Help

Performance des notifications

Cache

La récupération des notifications pour les modules d'affichage peut s'avérer onéreuse dans un système comprenant plusieurs centaines de milliers de notifications, notamment au niveau du tableau de bord des notifications qui permet d'ignorer certaines parties de tous les cours disponibles. Pour permettre de limiter plus facilement le recours à cette requête, le système de notification comprend un cache par utilisateur, par session :

  • Le cache enregistre les résultats d'une requête de notification pour un utilisateur, une session et un contexte spécifiques. Cela signifie que le système conserve des caches distincts pour chaque utilisateur et pour chaque cours auquel l'utilisateur se connecte au niveau du tableau de bord des notifications global.
  • L'utilisateur peut actualiser manuellement le cache. Cette action efface le cache de tous les contextes d'une session donnée.
  • Le cache ne sera pas mis à jour par l'arrivée de nouvelles notifications. L'utilisateur devra le réactualiser manuellement pour afficher les nouvelles notifications ou attendre la temporisation du cache. Consultez le tableau ci-après pour obtenir les valeurs de temporisation par défaut.
  • Le cache est réceptif aux suppressions manuelles de notifications. Par conséquent, si l'utilisateur supprime une notification depuis une vue particulière, cette dernière est également supprimée du cache dans tous les contextes.

Le cache est configuré au moyen des propriétés du fichier de configuration bb-config.properties.

Propriétés du cache
Propriété Clé Valeur par défaut
Nombre max. d'éléments bbconfig.cache.nautilusCache.elements 500 secondes
Durée de vie bbconfig.cache.nautilusCache.timetolive 600 secondes
Durée d'inactivité bbconfig.cache.nautilusCache.timetoidle 600 secondes
Permanent bbconfig.cache.nautilusCache.eternal Non

Si les performances associées aux modules d'affichage posent problème, les administrateurs peuvent mettre à jour ces paramètres pour augmenter la longévité des notifications conservées dans le cache. Le principe ici est simple : plus le cache est important, plus il est probable que les notifications affichées soient obsolètes.

les paramètres du cache n'ont aucune incidence sur la distribution des notifications.

Taille des notifications

Comme indiqué, le stockage des notifications sur des périphériques prévus à cet effet peut occuper un espace assez important. Cette section propose des stratégies pour éviter cela.

Par défaut, le système est livré avec toutes les notifications activées, c'est-à-dire que toutes les notifications pouvant être créées seront créées, pour tous les événements pris en charge. Suivant la taille de votre établissement scolaire et la façon dont les cours sont mis en place au début du semestre, il peut en résulter des tables très volumineuses et, par conséquent, une dégradation des performances.

Ce peut être une bonne idée de désactiver les notifications inutiles. Pour ce faire, allez aux pages Paramètres du cours => Paramètres de notification par défaut et Paramètres de l'association => Paramètres de notification par défaut, puis définissez ces notifications sur Toujours désactivé pour tous les distributeurs disponibles.

Vous pouvez également supprimer les notifications particulièrement détaillées pendant les périodes les plus chargées du semestre, par exemple, lors de la création des cours. Il peut également être judicieux de désactiver les notifications d'élément de contenu disponible lorsque les modèles de cours sont en cours d'achèvement, car il est plus que probable que ces dernières soient à l'origine de la plupart des notifications pendant cette période.

Les notifications ne sont pas éternelles. Une sorte de tâche de suppression est exécutée périodiquement sur le système pour éliminer les notifications antérieures à un certain nombre de jours. Le paramètre par défaut est de 120 jours, ce qui correspond approximativement à la durée d'un semestre.

L'administrateur peut contrôler la suppression de ces notifications en mettant à jour l'intervalle de nettoyage des notifications. Pour supprimer des notifications plus rapidement du système, il suffit de réduire la valeur de ce paramètre. Pour en savoir plus, reportez-vous à la section Définition des options de notification.

Ce paramètre doit être utilisé avec une extrême prudence. Il est impossible de récupérer ou de ré-émettre facilement les notifications supprimées.

  1. Désactivation des notifications inutiles
  2. Réduction de la durée de vie des notifications

Tâches de notification en arrière-plan

Le système de notification dépend de deux tâches qui sont définies dans le fichier de configuration bb-tasks.xml.

Tâches d'arrière-plan des notifications
Nom de la tâche Interne (minutes) Objectif
NotificationRemoveStaleDataTask 5 Cette tâche possède diverses fonctions :
  • Envoyer des rappels concernant les événements à échéance. Les rappels sont envoyés x jours avant l'échéance de l'élément, x correspondant au nombre de jours que les utilisateurs peuvent configurer.
  • Basculer les notifications parvenues à échéance dont le temps est écoulé en notifications parvenues à expiration.
  • Envoyer des courriers électroniques de synthèse aux heures prévues. Les courriers électroniques de synthèse sont transmis une fois par jour à l'heure définie par un administrateur.
  • Supprimer les données relatives aux destinataires obsolètes. Dans le contexte, "obsolète" désigne les enregistrements des destinataires conservés dans le système depuis x jours, x correspondant à la valeur définie par les administrateurs. Par défaut, le système est configuré pour conserver les destinataires pendant tout un semestre. Cette opération est configurée de manière à n'être exécutée qu'une fois par jour.
DistributionSendNotificationTask 60 Envoyer des notifications non traitées à tous les distributeurs enregistrés.

NotificationRemoveStaleDataTask

Les administrateurs peuvent définir l'intervalle de rappel par défaut sur la page Paramètres généraux de notification. Chaque utilisateur peut également modifier cette valeur sur la page Modifier les paramètres de notification.

Toutes les notifications parvenues à échéance sont transformées en événements parvenus à expiration une fois la date d'échéance passée. Ceux-ci incluent : Devoir arrivé à échéance, Examen arrivé à échéance, Élément évaluable arrivé à échéance et Examen non noté arrivé à échéance.

La dernière fonction de cette tâche, la suppression des données relatives aux destinataires obsolètes, est exécutée une fois par jour. Chaque fois que la tâche est activée, elle vérifie si son heure d'exécution est arrivée. Le cas échéant, la tâche est exécutée. L'heure d'exécution est précisée par la propriété nautilus.staleDataRemove.executionTime du fichier de configuration nautilus_config.properties.

Périodicité de la tâche

Modifier la périodicité de cette tâche aura pour effet de :

  1. Modifier la rapidité avec laquelle les notifications parvenues à échéance sont transformées en notifications parvenues à expiration. Dans la configuration par défaut, les notifications sont transformées dans un délai de cinq minutes une fois la date d'échéance passée.
  2. Modifier la rapidité avec laquelle les rappels sont envoyés. Dans la configuration par défaut, ils sont transmis dans un délai maximum de cinq minutes une fois l'heure de rappel passée.
  3. Modifier la rapidité avec laquelle la tâche de suppression des données obsolètes est exécutée. Dans la configuration par défaut, elle est exécutée à l'heure indiquée plus ou moins cinq minutes.

Prise en compte des performances

La partie nettoyage des notifications de cette tâche est exécutée de nuit à l'heure indiquée par la propriété nautilus.staleDataRemove.executionTime du fichier de configuration nautilus_config.properties. Par défaut, cette tâche est exécutée une fois par jour à 1 heure du matin.

Cette requête est très gourmande en performances, car elle analyse essentiellement l'intégralité du eud_item_recipient table pour rechercher les notifications obsolètes et les supprimer.

Si vous considérez que l'exécution de cette tâche sur votre système est particulièrement longue malgré toutes ces précautions, vous pouvez essayer les deux suggestions suivantes :

  1. Modifier l'heure d'exécution. D'autres tâches de maintenance sont généralement exécutées la nuit dans la plupart des établissements. Si cette tâche entre en conflit avec les autres tâches de maintenance ou contribue avec elles à nuire au fonctionnement de votre serveur de base de données, vous pouvez définir une autre heure d'exécution. Autrement dit, Blackboard recommande fortement de ne pas exécuter cette tâche en journée ou à tout autre moment où le système est utilisé de manière intensive.
  2. Mettre en place des mesures visant à réduire la taille du stockage des notifications. Moins vous avez de notifications, plus la requête est exécutée rapidement. Pour plus d'informations sur la procédure à suivre, voir Taille des notifications.

DistributionSendNotificationTask

Pour limiter la durée d'exécution de cette tâche, elle concerne uniquement un nombre limité de notifications par exécution donnée. Les administrateurs peuvent configurer ce paramètre dans la propriété nautilus.distribution.notificationsPerDistribution du fichier de configuration nautilus_config.properties. Le paramètre par défaut est de 10 000.

Les tâches de distribution envoient des notifications à tous les distributeurs enregistrés. Pour la plupart des établissements, cela signifie que les notifications ne sont transmises qu'au distributeur du courrier électronique. Une perte de performances est attendue chaque fois qu'un nouveau distributeur est ajouté.

Périodicité de la tâche

Modifier la périodicité de cette tâche aura pour effet de modifier la fréquence d'envoi des notifications par le système. Dans la configuration par défaut, une notification est distribuée au plus tard une heure après son introduction dans le système.

Le nombre de notifications distribuées par invocation affecte également le moment où une notification sera envoyée. Les administrateurs peuvent configurer ce paramètre dans la propriété nautilus.distribution.notificationsPerDistribution du fichier de configuration nautilus_config.properties.

Prise en compte des performances

Cette tâche est exécutée assez fréquemment, mais elle crée un plafond sur le nombre de notifications traitées lors d'une même exécution. Cette approche double de la distribution permet au système d'envoyer les notifications peu après qu'elles soient disponibles sans ralentir le système lorsque les notifications sont particulièrement nombreuses, par exemple, au début du semestre lorsque de nouveaux cours viennent juste d'être mis en ligne.

Si le processus de distribution nuit aux performances, réduisez la périodicité en substituant efficacement les performances par la rapidité. Si la distribution est trop lente, réduisez simplement le nombre de notifications gérées par exécution.

D'un autre côté, si vous considérez que les notifications n'arrivent pas assez vite, réduisez la périodicité de cette tâche et le nombre de notifications traitées par exécution.

Certains destinataires sont supprimés par leur nom uniquement. En effet, les enregistrements connexes sont conservés et portent simplement la mention SUPPRIMÉ.