다음을 통해 공유


예: 중복 알림 방지를 위한 이벤트 데이터 비교

다음 예에서는 이벤트 기록 테이블을 사용하여 이전에 받은 이벤트 데이터를 기반으로 알림이 중복 전달되지 않고 고유의 새 데이터만 구독자에게 전달되도록 하는 방법을 보여 줍니다. 이 예에서 뉴스 업데이트 응용 프로그램은 특정 뉴스 웹 사이트의 새 헤드라인 정보를 사용자에게 알려줍니다.

시나리오

뉴스 웹 사이트에 새 헤드라인이 게시될 때 사용자에게 알리도록 이벤트 기반 구독이 정의되어 있습니다. 이 웹 사이트에서는 헤드라인이 변경될 때 이벤트 공급자에게 알릴 방법을 제공하지 않으므로 이벤트 공급자가 15분 간격으로 헤드라인 내용을 수집합니다. 다음 표는 오전 동안의 데이터를 보여 줍니다.

시간 뉴스 헤드라인

09:00 GMT

Political Gridlock in Capital City

09:15 GMT

Political Gridlock in Capital City

09:30 GMT

Wildfire in the Cascades

현재 헤드라인 "Political Gridlock in Olympia"를 포함하는 09:00 GMT 데이터를 기반으로 알림을 받게 됩니다. 이벤트 일괄 처리가 완료되고 알림이 생성된 후에 이 응용 프로그램에 대해 정의된 이벤트 기록 규칙에 따라 현재 헤드라인 행이 이벤트 기록 테이블에 삽입됩니다.

구독 규칙

구독 규칙에 대해 정의된 알림 생성 작업은 이벤트 기록 테이블을 사용하여 헤드라인 값이 이벤트 기록 테이블에 이미 있는 이벤트를 모두 제외시켜 알림이 중복되지 않도록 합니다.

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)

결과

이 예제를 기반으로 다음과 같이 알림 프로세스가 진행됩니다.

  1. 첫 번째 헤드라인 "Political Gridlock in Olympia"는 기록 테이블에 없으며 알림으로 사용자에게 보내집니다. 그런 후 이 헤드라인으로 기록 테이블이 업데이트됩니다.
  2. 두 번째 헤드라인 "Political Gridlock in Olympia"는 기록 테이블의 기존 레코드(첫 번째 헤드라인에서 가져옴)와 동일합니다. 이 내용은 사용자에게 보내지지 않으며 기록 테이블도 업데이트되지 않습니다.
  3. 세 번째 헤드라인 "Wildfire in the Cascades"는 기록 테이블에 없으며 알림으로 사용자에게 보내집니다. 그런 후 이 헤드라인으로 기록 테이블이 업데이트됩니다.

참고 항목

개념

이벤트 클래스에 대한 기록 정의
이벤트 기록 테이블 정의
구독 규칙 정의
예: 예약 구독에 대한 이벤트 기록 사용
예: 이벤트 데이터 상한가를 사용하여 중복 알림 방지

도움말 및 정보

SQL Server 2005 지원 받기