Example: Comparing Event Data to Prevent Duplicate Notifications
The following example shows how to use an event chronicle table to avoid redundant notifications based on previously received event data; only new, unique data is sent out to subscribers. In this example, a news update application notifies you about the new headlines on a particular news Web site.
Scenario
Your event-driven subscription is defined to notify you any time a new headline is posted to the news Web site. The Web site provides no way for the event provider to know when the headline changes, so the event provider collects the contents of the headline element every 15 minutes. The data for the morning is shown in the following table.
Time in | News headline |
---|---|
09:00 GMT |
Political Gridlock in Capital City |
09:15 GMT |
Political Gridlock in Capital City |
09:30 GMT |
Wildfire in the Cascades |
You receive a notification based on the 09:00 GMT data, containing the current headline, "Political Gridlock in Olympia." After the event batch is processed and your notification is generated, a row for the current headline is inserted in the event chronicle table by an event chronicle rule that is defined for this application.
Subscription Rule
The notification generation action defined for the subscription rule uses the event chronicle table to prevent duplicate notifications by excluding any events whose headline value already exists in the event chronicle table:
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)
Results
Based on this example, the notification process proceeds as follows:
- The first headline, "Political Gridlock in Olympia," is not in the chronicle table, and is sent to you as a notification. The chronicle table is then updated with this headline.
- The second headline, "Political Gridlock in Olympia," is identical to an existing record (from the first headline) in the chronicle table. It is not sent to you, and the chronicle table is not updated.
- The third headline, "Wildfire in the Cascades," is not in the chronicle table, and is sent to you as a notification. The chronicle table is then updated with this headline.
See Also
Concepts
Defining Chronicles for an Event Class
Defining Event Chronicle Tables
Defining Subscription Rules
Example: Using an Event Chronicle for Scheduled Subscriptions
Example: Using Event Data High Values to Prevent Duplicate Notifications