Partager via


Exemple : comparaison de données d'événements afin d'éviter les notifications en double

L'exemple suivant illustre l'utilisation d'une table de chroniques d'événements pour éviter les notifications redondantes en fonction des données d'événements précédemment reçues ; seules les données nouvelles et uniques sont envoyées aux abonnés. Dans cet exemple, une application de mise à jour de News vous signale les nouveaux titres sur un site Web de News particulier.

Scénario

Votre abonnement géré par événements est défini pour vous avertir à tout moment de la publication d'un nouveau titre sur le site Web de News. Le site Web ne fournissant aucune méthode permettant au fournisseur d'événements de savoir à quel moment change un titre, ce dernier collecte les contenus de l'élément titre toutes les 15 minutes. Les données du matin sont illustrées dans le tableau suivant.

Heure Titre de News

09:00 GMT

Political Gridlock in Capital City

09:15 GMT

Political Gridlock in Capital City

09:30 GMT

Wildfire in the Cascades

Vous recevez une notification basée sur les données de 09:00 GMT, contenant le titre actuel « Political Gridlock in Olympia ». Lorsque le lot d'événements est traité et que votre notification est générée, une ligne correspondant au titre courant est insérée dans la table de chroniques d'événements par une règle de chronique d'événements qui est définie pour cette application.

Règle d'abonnement

L'action de génération de notification définie pour la règle d'abonnement utilise la table de chroniques d'événements pour éviter les notifications en double en excluant les événements dont la valeur titre existe déjà dans la table de chroniques d'événements :

SELECT dbo.NewsNotificationNotify(S.SubscriberId,
S.SubscriberDeviceName, S.SubscriberLocale,
E.Headline, E.BrowseBackURL)
FROM dbo.NewsSubscriptions S, dbo.NewsEvents E
WHERE E.Headline 
NOT IN (SELECT Headline from dbo.NewsEventChron )
INSERT dbo.NewsEventChron(Headline)
SELECT NewsEvents.Headline
FROM dbo.NewsEvents
WHERE NewsEvents.Headline
NOT IN (SELECT Headline FROM dbo.NewsEventChron)

Résultats

À partir de cet exemple, le processus de notification continue comme suit :

  1. Le premier titre, « Political Gridlock in Olympia », ne figure pas dans la table de chroniques et il vous est envoyé en tant que notification. La table de chroniques est ensuite mise à jour avec ce titre.
  2. Le deuxième titre, « Political Gridlock in Olympia », est identique à un enregistrement existant (du premier titre) de la table de chroniques. Il ne vous est pas envoyé et la table de chroniques n'est pas mise à jour.
  3. Le troisième titre, « Wildfire in the Cascades », ne figure pas dans la table de chroniques et il vous est envoyé en tant que notification. La table de chroniques est ensuite mise à jour avec ce titre.

Voir aussi

Concepts

Définition de chroniques pour une classe d'événements
Définition des tables de chroniques d'événements
Définition de règles d'abonnement
Exemple : Utilisation d'une chronique d'événements pour les abonnements planifiés
Exemple : utilisation de valeurs de données d'événement élevées pour éviter les notifications en double

Aide et Informations

Assistance sur SQL Server 2005